如何知道字符串是否包含列表中的任何字符串?

时间:2014-08-14 11:10:28

标签: c# string linq contains

我有这个清单:

List<string> lst01 = new List<string>();
lst01.Add("1");
lst01.Add("999");
lst01.Add("888");

List<string> lst02 = new List<string>();
lst02.Add("4");
lst02.Add("5");
lst02.Add("6");

string myString = "123";

我想知道myString是否包含列表中的任何字符串。

因此该方法将使用第一个列表返回true,而使用第二个列表返回false。

非常感谢。

4 个答案:

答案 0 :(得分:4)

 var result1 = lst01.Any(v=> myString.Contains(v));
 var result2 = lst02.Any(v=> myString.Contains(v));

答案 1 :(得分:1)

您可以尝试以下内容:

bool contains = lst01.Any(x=>x.myString.Contains(x))||list02.Any(x=>x.myString.Contains(x))

或者这个:

bool containedInFirstList =  lst01.Any(x=>x.myString.Contains(x));
bool containedInSecondList = lst02.Any(x=>x.myString.Contains(x));

第二个apporach会单独查看列表,如果您要查找的列表中包含或不包含,您将获得truefalse

第一种方法最初的方法是相同的,但最后得到的结果如果你遵循第二种方法,你会获得结果的逻辑或。

答案 2 :(得分:1)

尝试下面的代码,这里r1返回true,r2返回false: -

                List<string> lst01 = new List<string>();
                lst01.Add("1");
                lst01.Add("999");
                lst01.Add("888");

                List<string> lst02 = new List<string>();
                lst02.Add("4");
                lst02.Add("5");
                lst02.Add("6");

                string myString = "123";
                var r1 = lst01.Any(w => myString.Contains(w));
                var r2 = lst02.Any(w => myString.Contains(w));

答案 3 :(得分:1)

string myString = "123";
for (int i=0, i<lst01.size , i++){
   if (myString.Contains(lst01[i]))
   {
       return true;

   }}
return false;