在c#中的字符串列表中查找字符串

时间:2014-12-19 22:44:45

标签: c# string list

我试图查找字符串列表是否包含C#中的特定字符串。 例如:假设我的列表中有3个条目

list<string> s1 = new List<string>(){
  "the lazy boy went to the market in a car", 
  "tom", 
  "balloon"};
string s2 = "market";

现在我想在s1包含s2的情况下返回true,在这种情况下它就是。

return s1.Contains(s2);

这返回false,这不是我想要的。我正在阅读关于谓词的内容,但对于这种情况,我无法理解它。 提前谢谢。

2 个答案:

答案 0 :(得分:9)

最简单的方法是单独搜索每个字符串:

bool exists = s1.Any(s => s.Contains(s2));

List<string>.Contains()方法将检查是否有任何整个字符串与您要求的字符串匹配。您需要检查每个列表元素以完成您想要的任务。

请注意,这可能是一项耗时的操作,如果您的列表中包含大量元素,字符串很长,特别是在您搜索的字符串不存在的情况下或只能在列表末尾附近找到。

答案 1 :(得分:-1)

接受答案通常是最好的方法。我正在提供替代解决方案。此程序不需要LINQ,lamda或循环。这仅需要string内置类型的方法。

string.Concat(listOfString).Contains("data");