C# 检查列表中是否存在不区分大小写的字符串

C# 检查列表中是否存在不区分大小写的字符串,c#,C#,我的列表有一个错误。让我告诉你们我的想法:我有一个循环,当完成循环1时,值将添加到列表中,当完成循环时它将继续。最后,我将创建一个列表,其中包含每个循环中的所有值 然后,我想检查列表中是否存在值。如果存在,我会做点什么 例如: 循环1:列表:A 循环2:列表:A,B 循环3:列表:A、B、A 因为列表中存在一个值。然后,我会做一些事情,如果在列表中存在 List<string> list = new List<string>(); foreach (DataRow r i

我的列表有一个错误。让我告诉你们我的想法:我有一个循环,当完成循环1时,值将添加到列表中,当完成循环时它将继续。最后,我将创建一个列表,其中包含每个循环中的所有值

然后,我想检查列表中是否存在值。如果存在,我会做点什么

例如:

循环1:列表:A

循环2:列表:A,B

循环3:列表:A、B、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
    }
}
List List=新列表();
foreach(数据行r在dt.行中)
{
字符串Url=r[“Url”].ToString();
列表。添加(Url);
if(list.Contains(Url,StringComparer.OrdinalIgnoreCase))
{
//剂量
}
}
但什么也没发生。希望你能帮助我改进代码。谢谢

像这样试试看

if(list.Where(o=> string.Equals(Url, o, StringComparison.OrdinalIgnoreCase)).Any())
{
   // Exists in the 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 !!");
}
List l=新列表();
l、 添加(“马德里”);
l、 添加(“巴塞罗那”);
l、 添加(“纽约”);
l、 添加(“芝加哥”);
if(l.Exists(x=>string.Equals(x,“Chicago”,StringComparison.OrdinalIgnoreCase))){
Console.WriteLine(“完成!!”);
}

如果存在,您可以使用
StringComparison
枚举忽略案例,但是
Contains
的情况并非如此,您需要处理案例,否则您需要自定义
IComparer
忽略案例

,如果OP想要检查多次出现,这将是一种很好的方法,否则我们存在/包含,事实上if块中的代码将无助于使用通过Where生成的IEnumerable的计数,因此在当前表单中几乎没有用处为什么要将
Url
添加到
list
中,然后立即检查
list
是否包含刚才添加的字符串?嗨,Brian,因为我必须使用其他系统,给我一个链接。我必须根据职位发展。很难向你展示我的系统。
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 !!");
}