C#对照字符串的一部分检查列表

本文关键字:一部分 检查 列表 字符串 | 更新日期: 2023-09-27 18:24:58

我有一个包含值的列表,例如:

  • 准备行动
  • 使用操作
  • 开始投射动作

我想将一个字符串与这个列表进行比较,并在此基础上返回一个布尔值。例如:

string compare = "The Manipulator uses action";

为此,我尝试了两种不同的方法,第一种是:

if (mylist.Contains(compare)) { //True }

第二个(与Linq):

if (mylist.Any(str => str.Contains(compare))) { //True }

我遇到的问题是这两个方法都与扩展字符串匹配。我的意思是,如果compare=="use-action",则语句返回true,但如果compare=="操纵器使用action"则语句返回false。

如有任何帮助,我们将不胜感激!:)

C#对照字符串的一部分检查列表

我并没有完全遵循您的要求,因此根据预期结果,有两种不同的解决方案。

如果你只想从列表中匹配完全相同的字符串,那么Any是最好的方法,但你应该使用==而不是Contains:

if (mylist.Any(str => str == compare)) { //True }

如果希望扩展字符串也匹配,则使用Contains,但不调用str.Contains(compare),而是调用compare.Contains(str):

if (mylist.Any(str => compare.Contains(str))) { //True }