www.cftea.com

如何忽略大小写的查找 List 中是否存在某项

ITPOW2020/6/8 11:39:49
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));
<<返回首页<<