rue*_*edi 5 c# linq vb.net linqpad
我通过使用连接参考如何:使用Linq组合数据的示例.我们有两个列表,第一个持有人物对象(名字和姓氏).第二个List包含持有人物对象(宠物主人)的宠物对象(名称).一个人可以拥有> = 0只宠物.
现在发生的事情是我进行了群组加入
Dim result1 = From pers in people
Group Join pet in pets
on pers Equals pet.Owner
Into PetList = Group
Run Code Online (Sandbox Code Playgroud)
LinqPad向我展示了结果:

这对我来说就像Linq产生了很多冗余(但我可能在这里错了!).第一个结果对象将三次保持person对象.这里出现了两个问题,作为一个Linq nooby(但也许我读的输出不是正确的方式):
Run Code Online (Sandbox Code Playgroud)Select pers.FirstName , pers.LastName, PetName = If(pet is Nothing, String.Empty, pet.Name)
如果我们在PetList中有关于Person对象的所有信息,为什么不只是查询这个对象?在我看来,我们不再需要pers Object了.
是的,那些 Person 对象是引用。LINQ 不会克隆 Person 对象。
该输出的原因是 LINQPad 试图向您显示那个人是谁。如果不重复走过它的财产和领域,很难说出它指的是谁。