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();
을하지만 별개의 무엇을하지 않습니다 I 다음 코드에서 보여 주듯이해야합니다.
comp.Equals(categoryPaths[0], categoryPaths[1]); //returns True
잘못된 방식으로 사용하고 있습니까? 왜 나는 그들이 의도 한대로 비교되지 않습니까?
편집
: 은 예상대로 다음 true를 반환,하여 비교 자가하는 일을 보여주기 위해 :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