我有一个包含一堆字符串的列表testList
。如果这个字符串在列表中不存在,我想把一个新字符串加入到testList
中。因此,我需要对列表进行不区分大小写的搜索并且确保效率。由于Contains
没有考虑大小写,所以我不能使用它。为了避免性能问题,我也不想使用ToUpper/ToLower
。我找到了以下方法,它是有效的:
if(testList.FindAll(x => x.IndexOf(keyword,
StringComparison.OrdinalIgnoreCase) >= 0).Count > 0)
Console.WriteLine("Found in list");
这样可以工作,但它也匹配部分单词。如果列表包含“goat”,我无法添加“oat”,因为它声称“oat”已经在列表中。是否有一种以不区分大小写的方式高效地搜索列表,并且单词必须完全匹配的方法?谢谢
StringComparer
类自2.0版本就存在,但是Contains
方法的那个重载是在3.5版本中引入的。 https://msdn.microsoft.com/zh-cn/library/bb339118(v=vs.110).aspx - Denise Skidmore