.Net 4.0 C# - 无需手动循环即可添加到集合中

Joh*_*ohn 2 .net c# .net-4.0

我是4.0框架的新手(来自2.0),我不完全确定如何说出这个问题所以我认为最容易提出反对试试我的运气谷歌.

这是场景:

假设我有一个类"Wheel"的集合,我有第二个类"Vehicle"的集合,其中每个车辆对象都有一个"Wheel"集合.我的目标是将每辆车的轮子添加到我的Wheel系列中.

使用扩展方法,还有另一种方法可以做到这一点:

foreach(Vehicle v in vehicles)
{
   wheels.AddRange(v.Wheels);
}
Run Code Online (Sandbox Code Playgroud)

或者更具体地说,在我的实际用例中,只有一个轮(我需要将集合中每个对象的特定成员添加到另一个集合中):

foreach(Vehicle v in vehicles)
{
   wheels.Add(v.Wheel);
}
Run Code Online (Sandbox Code Playgroud)

我意识到上面做的很简单,但对于这个项目,我想尽可能使用3.5/4.0的附加功能.

谢谢!

Mat*_*eer 13

一点点LINQ都可以解决这个问题

wheels.AddRange(vehicles.SelectMany(v => v.Wheels));
Run Code Online (Sandbox Code Playgroud)

谢谢第四,我应该指出另一个案例.如果只有一个轮子那么Select将工作:

wheels.AddRange(vehicles.Select(v => v.Wheel));
Run Code Online (Sandbox Code Playgroud)

  • 或者在1个车轮的情况下:vehicles.Select(v => v.Wheel) (3认同)