c# – LINQ不同的运算符,忽略大小写?

给出以下简单示例:

    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包含与列表相同数量的项目。相反,我希望,例如,“三”和“三”被认为是平等的。

我缺少的东西,或者这是一个问题与独特的运算符?

StringComparer做你所需要的:

List<string> list = new List<string>() {
    "One", "Two", "Three", "three", "Four", "Five" };

var distinctList = list.Distinct(
    StringComparer.CurrentCultureIgnoreCase).ToList();

(或不变/顺序/ etc,取决于你正在比较的数据)

http://stackoverflow.com/questions/283063/linq-distinct-operator-ignore-case

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – LINQ不同的运算符,忽略大小写?