在c#中使用for循环检查列表中是不是存在字符串

Posted

技术标签:

【中文标题】在c#中使用for循环检查列表中是不是存在字符串【英文标题】:check whether a string exists in list using for loop in c#在c#中使用for循环检查列表中是否存在字符串 【发布时间】:2017-09-06 10:00:58 【问题描述】:

我有一个包含字符串值的列表arrString。我需要使用 C# 中的 for 循环检查字符串 lookupvalue.Longname 是否存在于列表中。

 for(int i = 0 ;i < ResoCustomFields.LongnameNotToBeTaken.Count ;i++)
 
    string myStringList = ResoCustomFields.LongnameNotToBeTaken[i].ToString();
    var arrString = myStringList.Trim('(',')').Split(',').ToList();
    if(arrString.Contains(resoField))
    
    // if(!arrString[i].Any(str=>str.ToString().Contains(lookupValue.LongName)))
    // if(lookupValue.LongName.Contains(arrString.ToString()))
    //(!arrString.Any(str => str.Equals(lookupValue.LongName)))
    // if(!arrString.Equals(lookupValue.LongName))                                                      
    
    

【问题讨论】:

Check if list contains element that contains a string and get that element的可能重复 if (ResoCustomFields.LongnameNotToBeTaken.Any(line =&gt; line.Trim('(',')').Split(',').Any(item =&gt; item == resoField))) ... 我试过 arrString[i].Contains(lookupValue.LongName).. 还是不行 我已经完成了修剪和分割.. 能举一个arrString和resoField的小例子吗? 【参考方案1】:

你可以试试下面的代码:

int pos = Array.IndexOf(arrString, lookupValue.LongName);
if (pos > -1)

//// DO YOUR STUF

以下是参考:

Checking if a string array contains a value, and if so, getting its position

【讨论】:

我试过了,但索引总是-1,即使字符串值包含在列表中。

以上是关于在c#中使用for循环检查列表中是不是存在字符串的主要内容,如果未能解决你的问题,请参考以下文章

检查集合c#中是不是存在元素

如何检查文件是否不存在,并使用For循环显示一个整体响应

在 C# 中使用“Regex”检查字符串数组中是不是存在元素

我可以将 for 循环集成到检查数组中是不是存在数字的 if 语句中吗?

使用 For Each 循环遍历列表时删除列表中的项目

C# - 如何检查 C# 中是不是存在命名空间、类或方法?