C#检查字符串列表中是否包含特定字符串

时间:2018-05-24 01:21:30

标签: c#

我正在尝试搜索字符串以查看它是否包含列表中的任何字符串,

var s = driver.FindElement(By.Id("list"));
var innerHtml = s.GetAttribute("innerHTML");

innerhtml是我想要搜索的字符串列表,例如

 var list = new List<string> { "One", "Two", "Three" };

所以如果说innerHtml包含“One”输出匹配:一个

3 个答案:

答案 0 :(得分:1)

您可以使用ContainsinnerHtml为列表中的每个项目应用LINQ来执行此操作:

var matches = list.Where(item => innerHtml.Contains(item)).ToList();

变量matches将包含来自list的{​​{1}}内匹配的字符串子集。

注意:此方法与字边界不匹配,这意味着当innerHtml包含"One"时,您会找到innerHtml的匹配项。

答案 1 :(得分:1)

您可以通过以下方式执行此操作:

array([[150, 200, 250, 300, 350],
       [170, 220, 270, 320, 370],
       [190, 240, 290, 340, 390],
       [210, 260, 310, 360, 410],
       [230, 280, 330, 380, 430]])

它将返回匹配项的索引,否则如果找不到则返回-1。

如果您想要字符串输出,如问题所述,您可以执行以下操作:

int result = list.IndexOf(innerHTML);

另一种简单的方法是:

if (result != -1)
    Console.WriteLine(list[result] + " matched.");
else
    Console.WriteLine("No match found");

如果匹配则返回匹配的元素,否则返回null。

有关详细信息,请参阅docs

答案 2 :(得分:0)

foreach(var str in list)
{
    if (innerHtml.Contains(str))
    {
        // match found, do your stuff.
    }
}

String.Contains documentation