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 时,您没有提供任何比较器,因此您使用的是默认值,它将使用区分大小写的比较。