如何忽略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