我无法弄清楚为什么这个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)。
谁能告诉我哪里出错?
由于
答案 0 :(得分:4)
您的匿名类型集合将按参考值进行比较,而不是childId
字段的值。每个匿名类型都有不同的对象引用,因此它们都是不同的。
只需选择ID,不要将其投影为匿名类型。