检查列表中是否存在不区分大小写的字符串
本文关键字:大小写 字符串 不区 存在 列表 是否 检查 | 更新日期: 2023-09-27 18:00:35
我的列表有一个错误。让我向您展示我的想法:我有一个循环,当完成循环1时,值将添加到List中,当结束循环时它将继续。最后,我将创建一个列表,其中包括每个循环中的所有值。
然后,我想检查列表中是否存在值。如果存在,我会做点什么。
示例:
循环1:列表:
循环2:列表:A、B
循环3:列表:A、B、A
因为值A在列表中存在。然后,如果列表中存在A,我会做一些事情
List<string> list = new List<string>();
foreach (DataRow r in dt.Rows)
{
string Url = r["Url"].ToString();
list.Add(Url);
if (list.Contains(Url, StringComparer.OrdinalIgnoreCase))
{
//dosomething
}
}
但什么也没发生。希望你能帮助我改进代码。谢谢
像这样尝试
if(list.Where(o=> string.Equals(Url, o, StringComparison.OrdinalIgnoreCase)).Any())
{
// Exists in the list
}
或
if(list.FindIndex(o=> string.Equals(Url, o, StringComparison.OrdinalIgnoreCase))>-1){
// Exists in the list
}
更好的方法是使用List方法Exists
或Contains
,检查以下程序:
List<string> l = new List<string>();
l.Add("Madrid");
l.Add("Barcelona");
l.Add("NewYork");
l.Add("Chicago");
if(l.Exists(x=>string.Equals(x,"Chicago",StringComparison.OrdinalIgnoreCase))){
Console.WriteLine("Done !!");
}
在Exist的情况下,您可以使用StringComparison
枚举忽略事例,但Contains
的情况并非如此,您需要处理事例,或者您需要自定义IComparer
来忽略事例