我引用How to: Combin Data with Linq by using joins中的示例。我们有两个列表,第一个保留人物对象(名字和姓氏)。第二个列表包含一个宠物对象(名称),该对象包含一个人对象(宠物所有者)。一个人可以拥有> = 0只宠物。

现在发生的事情是我进行了群组加入

Dim result1 = From pers in people
            Group Join pet in pets
            on pers Equals pet.Owner
            Into PetList = Group

LinqPad向我显示了结果:

在我看来,Linq产生了大量冗余(但在这里我可能错了!)。第一个结果对象将容纳人员对象3次。作为Linq nooby,对我来说有两个问题(但也许我读输出的方式不正确):
  • 人员对象引用吗?不幸的是我找不到任何东西。
  • 按照上面提到的示例,查询以
  • 继续



    如果我们在PetList中拥有有关Person对象的所有信息,为什么不只查询该对象呢?我认为我们不再需要pers对象。

    最佳答案

    是的,那些Person对象是引用。 LINQ不克隆Person对象。

    该输出的原因是LINQPad试图向您显示该人是谁。如果不重复其属性和字段,就很难说出它指的是哪个人。

    09-30 14:34
    查看更多