【问题标题】:how to know if a string contains any of the strings on a list?如何知道一个字符串是否包含列表中的任何字符串?
【发布时间】:2014-10-08 00:27:43
【问题描述】:

我有这个清单:

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。

非常感谢。

【问题讨论】:

    标签: c# string linq contains


    【解决方案1】:
     var result1 = lst01.Any(v=> myString.Contains(v));
     var result2 = lst02.Any(v=> myString.Contains(v));
    

    【讨论】:

    • 不是.Any(..)总是返回bool类型吗?
    • @Fabio: var 在编译时确定。对于 lazy 程序员来说,这更像是一种捷径,不要自己编写/确定类型,而是让编译器/IDE 完成所有工作:P
    • 我知道var,但始终认为,如果您确定返回类型,最好使用它。可读性...? :)
    【解决方案2】:

    在这里尝试下面的代码 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】:
      string myString = "123";
      for (int i=0, i<lst01.size , i++){
         if (myString.Contains(lst01[i]))
         {
             return true;
      
         }}
      return false;
      

      【讨论】:

        【解决方案4】:

        您可以尝试以下方法:

        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));
        

        第二个方法分别查看列表,如果包含或不在您要查找的列表中,您将获得truefalse

        第一种方法最初的效果相同,但最后会得到如果您采用第二种方法,您会得到的结果的逻辑 OR。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-03-06
          • 2020-07-31
          • 2020-08-09
          • 2019-07-31
          • 1970-01-01
          • 2023-03-27
          • 2011-02-15
          • 1970-01-01
          相关资源
          最近更新 更多