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

C# 检查字符串列表中是否包含特定字符串,c#,C#,我试图搜索一个字符串,看看它是否包含列表中的任何字符串 var s = driver.FindElement(By.Id("list")); var innerHtml = s.GetAttribute("innerHTML"); innerHtml是我想要搜索由我提供的字符串列表的字符串,例如 var list = new List<string> { "One", "Two", "Three" }; var list=新列表{“一”、“二”、“三”}; 所以如果说inne

我试图搜索一个字符串,看看它是否包含列表中的任何字符串

var s = driver.FindElement(By.Id("list"));
var innerHtml = s.GetAttribute("innerHTML");
innerHtml
是我想要搜索由我提供的字符串列表的字符串,例如

 var list = new List<string> { "One", "Two", "Three" };
var list=新列表{“一”、“二”、“三”};
所以如果说innerHtml包含“一”输出匹配:一

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

您可以通过对列表中的每一项应用
Contains
innerHtml
来使用LINQ:

var matches = list.Where(item => innerHtml.Contains(item)).ToList();
变量
matches
将包含
列表中的字符串子集,这些字符串在
innerHtml
中匹配


注意:这种方法在单词边界处不匹配,这意味着当
innerHtml
包含
“繁重的”
时,您会找到一个匹配的
“One”
,您可以通过以下方式执行此操作:

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


有关详细信息,请参阅。

如何使其返回列表中的当前字符串而不是-1或+1?@UniversityHelp一种简单的方法是使用if-else块,类似于我刚才在回答中更新的内容。@UniversityHelp我刚刚用另一种简单的方法更新了我的回答。谢谢:),你知道我怎么能把一个列表分成两列吗?我目前正在使用List List=File.ReadAllLines(“textfile.txt”).ToList();它包含一个字符串列表,但是如果我加上“Name:ID”,是否可以将列表拆分为列并搜索ID?然后使用名称作为输出如果HTML包含
one
?如果它包含
Onesimus