我可以检查字符串中是否包含数组的元素吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以检查字符串中是否包含数组的元素吗?相关的知识,希望对你有一定的参考价值。

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

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

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

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

现在我进入循环:

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

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

答案

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

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

用linq语法编写,我认为它更具可读性。

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

以上是关于我可以检查字符串中是否包含数组的元素吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查字符串是不是包含数组中的任何元素[关闭]

我如何确定数组是否包含某些元素?

检查字符串是不是包含数组的任何元素[重复]

检查字符串是不是包含Python中数组中的多个元素

JavaScript单行代码,也就是代码片段

检查可选数组是不是包含元素和显示视图