查找子串是否是直接列表/数组的一部分

时间:2016-05-10 09:49:52

标签: c# arrays string list substring

我列出的定义为:

List<string> content = new List<string>(){ "Hello This", "This is", "This" };

我想要一个代码来查找列表是否包含Keyword This,如果是,则首次出现。

现有代码:

foreach(string line in content){
     if(line.Contains("This"))
          return line;
}

我想简单地知道是否还有其他选择。如果我们知道完整的字符串,那么我们可以使用List.Contains,但对于子字符串,如何继续?

使用.NET 2.0。请不要使用LINQ建议。

4 个答案:

答案 0 :(得分:2)

正如MSDN所述,自FindIndex以来Framework 2.0可用,可用于您的问题。

FindIndex搜索与指定谓词定义的条件匹配的元素,并返回整个List中第一个匹配项的从零开始的索引。

List<string> content = new List<string>() { "Hello This", "This is", "This" };
var index = content.FindIndex(p => p.Contains("This"));
if (index >= 0)
    return content[index];

答案 1 :(得分:1)

以下是您在C#2.0中搜索的内容:

List<string> content = new List<string>() { "Hello This", "This is", "This" };
string keyword = "This";
string element = content.Find(delegate(string s) { return s.Contains(keyword); });

答案 2 :(得分:0)

  

Find()第一个匹配指定条件的元素   谓词,如果找到;否则,类型为T Msdn

的默认值

可以从NET Framework 2.0

获取查找()
 List<string> content = new List<string>() { "Hello This", "This is", "This" };
 string firstOccurance = content.Find(g => g.Contains("This"));

答案 3 :(得分:-1)

您可以使用linq,这将与您的for循环相同:

return content.FirstOrDefault(x => x.Contains("This"));