给定以下简单示例:
List<string> list = new List<string>() { "One", "Two", "Three", "three", "Four", "Five" };
CaseInsensitiveComparer ignoreCaseComparer = new CaseInsensitiveComparer();
var distinctList = list.Distinct(ignoreCaseComparer as IEqualityComparer<string>).ToList();
看起来 CaseInsensitiveComparer 实际上并未用于进行不区分大小写的比较。
换句话说,distinctList 包含与 list 相同数量的项目。相反,我希望,例如,“三”和“三”被认为是相等的。
我是不是遗漏了什么或者这是 Distinct 运算符的问题?
最佳答案
StringComparer
可以满足您的需求:
List<string> list = new List<string>() {
"One", "Two", "Three", "three", "Four", "Five" };
var distinctList = list.Distinct(
StringComparer.CurrentCultureIgnoreCase).ToList();
(或不变量/序数等,取决于您比较的数据)
关于c# - LINQ Distinct 运算符,忽略大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/283063/