List list = new List() { "A", "b" }; Response.Write(list.Contains("a"));
以上结果为 False,因为 Contains 默认是大小写敏感的,如果要实现忽略大小写的查找呢?其实有很多种方法。
使用 Contains 的自定义比较
public class MyCompare : IEqualityComparer{ public bool Equals(string x, string y) { return string.Compare(x, y, true) == 0; } public int GetHashCode(string obj) { throw new NotImplementedException(); } } Response.Write(list.Contains("a", new MyCompare()));
如上可以看出,我们是自定义的比较,所以除了大小写比较,我们还可以实现更多自定义的比较方法。
使用 Exists
Response.Write(list.Exists(m => m.Equals("a", StringComparison.CurrentCultureIgnoreCase))); // 或者 Response.Write(list.Exists(m => string.Compare(m, "a", true) == 0));