Anhand des folgenden einfachen Beispiels:
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();
Es scheint, dass der CaseInsensitiveComparer nicht verwendet wird, um einen Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen.
Mit anderen Worten, differentList enthält die gleiche Anzahl von Elementen wie list . Stattdessen würde ich zum Beispiel erwarten, dass "Drei" und "Drei" als gleich angesehen werden.
Vermisse ich etwas oder ist dies ein Problem mit dem Distinct-Operator?
OutPut wird sein
quelle
Hier ist eine viel einfachere Version.
quelle