KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I've got the following classes: public class SupplierCategory : IEquatable<SupplierCategory> { public string Name { get; set; } public string Parent { get; set; } #region IEquatable<SupplierCategory> Members public bool Equals(SupplierCategory other) { return this.Name == other.Name && this.Parent == other.Parent; } #endregion } public class CategoryPathComparer : IEqualityComparer<List<SupplierCategory>> { #region IEqualityComparer<List<SupplierCategory>> Members public bool Equals(List<SupplierCategory> x, List<SupplierCategory> y) { return x.SequenceEqual(y); } public int GetHashCode(List<SupplierCategory> obj) { return obj.GetHashCode(); } #endregion } And i'm using the following linq query: 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(); But the distinct does not do what I want it to do, as the following code demonstrates: comp.Equals(categoryPaths[0], categoryPaths[1]); //returns True Am I using this in a wrong way? why are they not compared as I intend them to? Edit: To demonstrate the the comparer does work, the following returns true as it should: List<SupplierCategory> l
Tags (comma-separated)
Save Edits
Cancel