如何使用LINQ生成新类型的对象

时间:2010-09-24 06:59:19

标签: c# linq

我有两个List<T>个具有不同类型的对象(即List<Apple>List<Tiger>)。现在我想组合2个对象的属性来生成一个新的(匿名)对象类型。

如何使用LINQ实现?

1 个答案:

答案 0 :(得分:15)

那么你是否只想将苹果列表的第一个元素与老虎列表的第一个元素结合起来?

如果是这样,如果您使用的是.NET 4,则可以使用Zip

var results = apples.Zip(tigers, (apple, tiger) => 
                   new { apple.Colour, tiger.StripeCount });

如果您不使用.NET 4,则可以在MoreLINQ中使用Zip的实现。

如果您想以其他方式匹配苹果与老虎,您可能想要使用连接:

var results = from apple in apples
              join tiger in tigers on apple.Name equals tiger.Name
              select new { apple.Color, tiger.StripeCount };