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

时间:2015-06-30 03:30:53

标签: c#

我的列表出错了。让我告诉你我的想法:我有一个循环,当完成循环1时,值将添加到List,并且它将在完成循环时继续。最后,我将在每个循环中包含所有值的List。

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

示例:

  

循环1:列表:A

     

循环2:列表:A,B

     

循环3:列表:A,B,A

因为值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
    }
}

但没有任何事情发生。希望你帮我改进我的代码。谢谢!!!

2 个答案:

答案 0 :(得分:6)

试试这个

Notif.where.not(id: User.where(id: current_user_id).pluck[:notif_id])

if(list.Where(o=> string.Equals(Url, o, StringComparison.OrdinalIgnoreCase)).Any())
{
   // Exists in the list
}

答案 1 :(得分:5)

更好的方法是使用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 !!");
}

如果存在,您可以使用StringComparison枚举忽略该情况,但Contains不是这种情况,您需要处理这种情况,否则您需要自定义{ {1}}忽略案例

相关问题