【问题标题】:Can I check if a string contains an array's element in it?我可以检查一个字符串中是否包含数组的元素吗?
【发布时间】:2019-08-14 14:52:27
【问题描述】:

试图找到更有效的方法来检查字符串是否包含数组中的单词(字符串)。

我有一个字符串列表。当我遍历它们时,我想检查当前字符串中是否包含一些特定的单词。为了存储这些单词,我使用了一个字符串数组。所以,我想知道是否有 linq 的方法?(或者更有效的方法)像 string.Any() 这样的字符串?

我是用循环做的,但我个人不喜欢它: 首先是主列表和数组:

List<string> lista = new List<string>() {"\r\n", "<p>This is a paragrath</p>", "<h2>This is a subheader</h2>", "\r\n" };
string[] arr = new string[] {"<h1>","<h2>","<h3>","<p>" };

现在我进入循环:

for(int i = 0; i < lista.Count; i++)
{
  if(lista[i] != "\r\n")
    for(int j = 0; j < arr.Length; j++)
    {
      if(lista[i].Contains(arr[j]))
      {
        ...
      }
    }
}

正如我上面所说,我不喜欢这样。还有其他方法吗?

【问题讨论】:

    标签: c# arrays string list linq


    【解决方案1】:

    这将为您提供lista 中至少包含arr 的一个元素的所有项目:

    string[] result = lista.Where(x => arr.Any(a => x.Contains(a)).ToArray()
    

    【讨论】:

      【解决方案2】:

      用 linq 语法写的,我觉得更易读。

      var allThatContainTags = from html in lista
                               where html != "\r\n" && arr.Any(html.Contains)
                               select html;
      

      【讨论】:

        猜你喜欢
        • 2023-03-13
        • 2019-11-26
        • 1970-01-01
        • 2019-10-22
        • 1970-01-01
        • 2016-06-17
        • 1970-01-01
        • 2013-10-03
        • 1970-01-01
        相关资源
        最近更新 更多