.Net 4.0 C# - 添加到没有手动循环的集合

问题描述:

我是新来的4.0框架(来自2.0),我不完全知道如何说这个问题,所以我认为这将是最容易提出反对尝试与谷歌的运气。.Net 4.0 C# - 添加到没有手动循环的集合

这里的情景:

比方说,我有类的集合“轮”,我有类“车辆”,其中每个车辆对象具有的“车轮”一集的第二集合。我的目标是将每辆车的车轮添加到我的车轮集合中。

随着扩展方法,有另一种方式来做到这一点:

foreach(Vehicle v in vehicles) 
{ 
    wheels.AddRange(v.Wheels); 
} 

或者更具体地说,在我的实际使用情况下,就只有一个车轮(我需要添加各种对象的特定成员在收集到的另一个集合):

foreach(Vehicle v in vehicles) 
{ 
    wheels.Add(v.Wheel); 
} 

我意识到做上述本身非常简单,但对于这个项目,我想尽可能用增加至3.5/4.0。

谢谢!

LINQ的一点点就可以了

wheels.AddRange(vehicles.SelectMany(v => v.Wheels)); 

感谢第四,我要指出的另一种情况。如果只有一个*,然后Select将工作:

wheels.AddRange(vehicles.Select(v => v.Wheel)); 
+3

或1轮的情况下, :车辆。选择(v => v.Wheel) – Fourth 2011-05-24 15:53:09

还有一个办法:

vehicles.ForEach(v => { wheels.AddRange(v.Wheels); }); 

或者在一个车轮的情况:

vehicles.ForEach(v => { wheels.Add(v.Wheel); });