【发布时间】:2010-12-20 03:47:27
【问题描述】:
我想搜索一个字符串列表,不区分大小写。
尝试过 .Contains 和 ==
有没有办法做到这一点,或者我必须将整个字符串列表转换为非大写字母,然后搜索?
干杯!
【问题讨论】:
-
我认为你的意思是写一个“不区分大小写”的搜索
标签: c# wpf algorithm string search
我想搜索一个字符串列表,不区分大小写。
尝试过 .Contains 和 ==
有没有办法做到这一点,或者我必须将整个字符串列表转换为非大写字母,然后搜索?
干杯!
【问题讨论】:
标签: c# wpf algorithm string search
设置了 StringComparison 参数的String.IndefOf 怎么样?或者,构建一个正则表达式。
【讨论】:
一种方法。
var answer = list.FirstOrDefault(item => item.Equals("test", StringComparison.CurrentCultureIgnoreCase));
【讨论】:
"test".Equals(item, StringComparison.CurrentCultureIgnoreCase).
假设您使用 C# 3:
var all = new [] {"A", "a", "AB", "aB", "Ab". "Etc"};
var searchItem = "A";
var found = all.Where (x => string.Compare(x, searchItem, StringComparison.InvariantCultureIgnoreCase) == 0);
foreach(var foundItem in found)
Console.WriteLine(foundItem);
【讨论】:
您可以简单地使用 String.ToUpper() 来比较不敏感。 (您要比较的两个字符串都大写)。
或者.net lib中有更高级的字符串比较助手:
见: http://en.csharp-online.net/CSharp_FAQ:_How_perform_a_case_insensitive_string_comparison
【讨论】: