C#Check List反对部分字符串

时间:2015-11-29 03:12:34

标签: c# linq

我有一个包含以下值的列表:

  • 准备行动
  • 使用操作
  • 开始施展行动

我想比较一个字符串来匹配这个列表,并根据它返回一个布尔值。例如:

string compare = "The Manipulator uses action";

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

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

和第二个(与Linq):

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

我遇到的问题是这两种方法都与扩展字符串匹配。我的意思是,如果 compare ==“使用action”该语句返回true,但如果 compare ==“Manipulator使用action ,则该语句返回false。 / p>

任何有关修复此问题的帮助都将非常感谢! :)

1 个答案:

答案 0 :(得分:1)

我并不完全关注你所寻找的东西,因此有两种不同的解决方案,这些都是预期的结果。

如果您只想尝试匹配列表Any中完全相同的字符串,那么您应该使用==代替Contains

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

如果您希望扩展字符串也匹配,则使用Contains,而不是拨打str.Contains(compare)来电话compare.Contains(str)

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