Linq to object - 选择Distinct

时间:2010-03-18 14:26:23

标签: .net vb.net linq

我无法弄清楚为什么这个Linq声明没有像我期望的那样工作:

    Dim distinctSurchargesList = (From thisparent As Parent In ThisParentCollection _
                                    From thisChild As Child In thisparent.theseChildren _
                                    Select New With {.childId = thischild.Id}).Distinct()

我认为这会创建一个新的匿名类型集合,这将是截然不同的。相反,它会创建一个“ThisParentCollection”大小的集合,其中包含重复的“MyAnonymousType”(重复的id)。

谁能告诉我哪里出错?

由于

1 个答案:

答案 0 :(得分:4)

您的匿名类型集合将按参考值进行比较,而不是childId字段的值。每个匿名类型都有不同的对象引用,因此它们都是不同的。

只需选择ID,不要将其投影为匿名类型。