繁体   English   中英

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

[英]Check if a particular string is contained in a list of strings

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

var s = driver.FindElement(By.Id("list"));
var innerHtml = s.GetAttribute("innerHTML");
foreach(var str in list)
{
    if (innerHtml.Contains(str))
    {
        // match found, do your stuff.
    }
}

String.Contains文档

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

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

变量matches将包含list的字符串子集,这些字符串在innerHtml中匹配。

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

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

int result = list.IndexOf(innerHTML);

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

如果你想要一个字符串输出,如问题所述,你可以做类似的事情:

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

另一种简单的方法是:

string matchedElement = list.Find(x => x.Equals(innerHTML));

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

有关详细信息,请参阅文档

对于那些想要在另一个字符串列表中搜索字符数组的人

列表通配符 = new() { " ", "%", "?"<\/em> };<\/em> List PlateNo = new() { "13eer", "rt4<\/em> 444", "45566" };

if (WildCard.Any(x => PlateNo.Any(y => y.Contains(x)))) Console.WriteLine("Plate has wildchar}");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM