NameValueCollection.AllKeys.Contains 总是 returns 错误
NameValueCollection.AllKeys.Contains always returns false
System.Web.HttpContext.Current.Request.Params.AllKeys.Contains(key)
总是returns错误,但是
System.Web.HttpContext.Current.Request.Params[key]
returns 键的值。
有人能告诉我为什么会这样吗?
在我的例子中,密钥是 "ctl00$ContentPlaceHolder1$username",我在 System.Web.HttpContext.Current.Request.Params.AllKeys 和 System.Web.HttpContext.Current.Request.Params 中调试并检查了确切的密钥。
Params
集合使用不区分大小写的字符串比较器进行初始化。当您使用 Contains
时,您没有提供任何比较器,因此您使用的是默认值,它将使用区分大小写的比较。
System.Web.HttpContext.Current.Request.Params.AllKeys.Contains(key)
总是returns错误,但是
System.Web.HttpContext.Current.Request.Params[key]
returns 键的值。
有人能告诉我为什么会这样吗?
在我的例子中,密钥是 "ctl00$ContentPlaceHolder1$username",我在 System.Web.HttpContext.Current.Request.Params.AllKeys 和 System.Web.HttpContext.Current.Request.Params 中调试并检查了确切的密钥。
Params
集合使用不区分大小写的字符串比较器进行初始化。当您使用 Contains
时,您没有提供任何比较器,因此您使用的是默认值,它将使用区分大小写的比较。