如何忽略List <string>中的区分大小写

让我们说我有这个代码

string seachKeyword = "";
List<string> sl = new List<string>();
sl.Add("store");
sl.Add("State");
sl.Add("STAMP");
sl.Add("Crawl");
sl.Add("Crow");
List<string> searchResults = sl.FindAll(s => s.Contains(seachKeyword));

如何忽略包含搜索中的字母大小写?

谢谢,


最好的选择是使用序号不区分大小写的比较,但Contains方法不支持它。

您可以使用以下方法来执行此操作:

sl.FindAll(s => s.IndexOf(searchKeyword, StringComparison.OrdinalIgnoreCase) >= 0);

最好用扩展方法来包装它,例如:

public static bool Contains(this string target, string value, StringComparison comparison)
{
    return target.IndexOf(value, comparison) >= 0;
}

所以你可以使用:

sl.FindAll(s => s.Contains(searchKeyword, StringComparison.OrdinalIgnoreCase));

使用Linq,这为.Compare增加了一个新方法

using System.Linq;
using System.Collections.Generic;

List<string> MyList = new List<string>();
MyList.Add(...)
if (MyList.Contains(TestString, StringComparer.CurrentCultureIgnoreCase)) {
    //found
} 

推测是这样

using System.Linq;
...

List<string> searchResults = sl.FindAll(s => s.Contains(seachKeyword, StringComparer.CurrentCultureIgnoreCase));  

您可以通过提供不区分大小写的字符串相等比较器来使用Contains ,如下所示:

if (myList.Contains(keyword, StringComparer.OrdinalIgnoreCase))
{
    Console.WriteLine("Keyword Exists");
}
链接地址: http://www.djcxy.com/p/75191.html

上一篇: How to ignore the case sensitivity in List<string>

下一篇: Javascript contains case insensitive