重複残しきゅうは、私は次のクラス持っ
CategoryPathComparer comparer = new CategoryPathComparer();
List<List<SupplierCategory>> categoryPaths = (from i in infoList
select
new List<SupplierCategory>() {
new SupplierCategory() { Name = i[3] },
new SupplierCategory() { Name = i[4], Parent = i[3] },
new SupplierCategory() { Name = i[5], Parent = i[4] }}).Distinct(comparer).ToList();
をしかし、明確な何をしていませんが、私次のコードで示しているようにしてください:
comp.Equals(categoryPaths[0], categoryPaths[1]); //returns True
私はこれを間違った方法で使用していますか?なぜ彼らは私が彼らを向けるように比較されていないのですか?あなたの問題はあなたが正しくIEqualityComparer
を実装していなかったということです
List<SupplierCategory> list1 = new List<SupplierCategory>() {
new SupplierCategory() { Name = "Cat1" },
new SupplierCategory() { Name = "Cat2", Parent = "Cat1" },
new SupplierCategory() { Name = "Cat3", Parent = "Cat2" }
};
List<SupplierCategory> list1 = new List<SupplierCategory>() {
new SupplierCategory() { Name = "Cat1" },
new SupplierCategory() { Name = "Cat2", Parent = "Cat1" },
new SupplierCategory() { Name = "Cat3", Parent = "Cat2" }
};
CategoryPathComparer comp = new CategoryPathComparer();
Console.WriteLine(comp.Equals(list1, list2).ToString());
Retag。 C#3.5はありません(http://stackoverflow.com/questions/247621/what-are-the-correct-version-numbers-for-c) – Vaccano