【问题标题】:Get the whole string from a String array if the string contains a substring如果字符串包含子字符串,则从字符串数组中获取整个字符串
【发布时间】:2016-06-07 12:45:39
【问题描述】:

我有一个字符串数组,例如:

string[] myStrings = {"I want to take this string","This is not interesting"}

我想检查字符串数组是否包含一个值,然后返回包含它的整个字符串。

例子:

var index = Array.FindIndex(stringArray, x => x == stringArray.Contains("want"));

在此之后我想返回字符串:I want to take this string,因为它包含我搜索的关键字。

我如何归档这个结果?

【问题讨论】:

    标签: c# .net string linq


    【解决方案1】:

    我会改用 LINQ:

    IEnumerable<string> occurences = stringArray.Where(s => s.Contains("want"));
    

    occurences 中,您拥有匹配的所有 次出现的完整字符串。如果你只是对第一次点击感兴趣,你可以在上面做FirstOrDefault

    【讨论】:

      【解决方案2】:

      你也可以使用Array.FindIndex,就像你已经尝试过的那样,然后使用这个:

      int index = Array.FindIndex(myStrings, str => str.Contains("want"));
      string desired = index >= 0 ? myStrings[index] : null; 
      

      【讨论】:

      • 感谢您的帮助
      【解决方案3】:

      试试这个:

      myStrings.FirstOrDefault(str => str.Contains("want"));
      

      这将返回包含wantnull 的第一个字符串(如果未找到)。如果您想要包含want 的所有字符串的列表,请将FirstOrDefault 替换为Where

      【讨论】:

      • 感谢您的帮助。
      【解决方案4】:
      public string GetStringContent()
      {
          string[] myStrings = { "I want to take this string", "This is not interesting" };
          string strContent=string.Empty;
          for (int i = 0; i < myStrings.Length; i++)
          {
              if (myStrings[i].Contains("want"))
              {
                 return  myStrings[i];
              }
          }
          return strContent;
      } 
      

      试试这个...如果它包含'want',它将返回第一个字符串。

      【讨论】:

      • 如果您只对第一个(或最后一个)感兴趣,您可以简单地返回或中断,而不是继续循环。
      猜你喜欢
      • 2017-10-19
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      • 2020-08-26
      • 2020-04-05
      • 1970-01-01
      • 2020-02-14
      • 2021-11-22
      相关资源
      最近更新 更多