çiftleri bırakırLinQ şu dersleri var
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();
Ama farklı ne yapmaz ben Aşağıdaki kodun gösterdiği gibi bunu yapmak istiyorum:
comp.Equals(categoryPaths[0], categoryPaths[1]); //returns True
Bunu yanlış bir şekilde mi kullanıyorum? Neden onları niyet ettiğim gibi karşılaştırmıyorlar?
Düzenleme
: olması gerektiği gibi aşağıdaki döndürür true karşılaştırıcısı yapar çalışmalarını göstermek için: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 yok (bkz. Http://stackoverflow.com/questions/247621/what-are-the-correct-version-numbers-for-c) – Vaccano