我试过linq删除重复的项目:
var MyItems = (from b in this.result
select new Item{ Name = b.Name, ID = b.ID }).Distinct();
Run Code Online (Sandbox Code Playgroud)
我检查了结果,没有删除重复的项目.如何解决这个问题?
默认情况下,Distinct()uses EqualityComparer<T>.Default,具有以下规则:
默认的相等比较器Default用于比较实现IEquatable泛型接口的类型的值.要比较自定义数据类型,您需要实现此接口并为该类型提供自己的GetHashCode和Equals方法.
在您的情况下,这意味着Item需要实现IEquatable<Item>.
另外,您也可以使用过载Distinct其中需要IEqualityComparer<T>直接.