我的列表出错了.让我告诉你我的想法:我有一个循环,当完成循环1时,值将添加到List,并且它将在完成循环时继续.最后,我将列出包含每个循环中所有值的List.
然后,我想检查列表中是否存在值.如果存在,我会做点什么.
例:
循环1:列表:A
循环2:列表:A,B
循环3:列表:A,B,A
因为值A在列表中存在.然后,如果A存在于List中,我将做一些事情
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
}
}
Run Code Online (Sandbox Code Playgroud)
但什么都没发生.希望你帮我改进我的代码.谢谢 !!!
试试这样吧
if(list.Where(o=> string.Equals(Url, o, StringComparison.OrdinalIgnoreCase)).Any())
{
// Exists in the list
}
Run Code Online (Sandbox Code Playgroud)
要么
if(list.FindIndex(o=> string.Equals(Url, o, StringComparison.OrdinalIgnoreCase))>-1){
// Exists in the list
}
Run Code Online (Sandbox Code Playgroud)
更好的方法是使用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 !!");
}
Run Code Online (Sandbox Code Playgroud)
如果存在,您可以使用StringComparison枚举忽略该情况,但情况并非如此Contains,您需要处理案例,否则您需要自定义IComparer忽略该情况