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

本文关键字:大小写 字符串 不区 存在 列表 是否 检查 | 更新日期: 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方法ExistsContains,检查以下程序:

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来忽略事例