我列出的定义为:
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建议。
答案 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"));