【发布时间】:2015-03-26 06:20:29
【问题描述】:
我有这个 lambda,希望它返回 Distinct 列表。
var ResourceTypeNameList = Resources.Select(r => new bl_SelectBox{ text=r.ResourceTypeName, value=r.resourceTypeID }).Distinct();
我错过了什么还是应该返回一个不同的列表?
【问题讨论】:
-
它应该但是根据 bl_SelectBox 的相等比较(如果它是一个自定义引用类型,除了它的属性之外没有其他任何东西......每个引用都不等于其他任何东西)。
-
@AdrianoRepetti 当前资源列表有 text = "Car", value = 1 X 2. 但是它返回它们两次,它应该只返回一次。
-
您是否希望与每个对象有所不同?喜欢文字还是价值?在您的情况下,它将返回不同的引用。
-
bl_SelectBox是否覆盖GetHashCode和Equals?如果没有,尝试实现这个,或者给Distinct一个额外的参数实现IEqualityComparer<bl_SelectBox> -
它必须与 value=r.resourceTypeID 不同,但我需要选择 text=r.ResourceTypeName。