我有一个包含以下值的列表:
我想比较一个字符串来匹配这个列表,并根据它返回一个布尔值。例如:
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>
任何有关修复此问题的帮助都将非常感谢! :)
答案 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 }