.Net 4.0 C#-添加到集合而不进行手动循环

本文关键字:循环 集合 C#- 添加 Net | 更新日期: 2023-09-27 17:57:27

我是4.0框架的新手(来自2.0),我不完全确定如何表达这个问题,所以我认为这是最容易问的问题,而不是在谷歌上碰碰运气。

这是一个场景:

假设我有一个类"Wheel"的集合,还有第二个类"Vehicle"的集合。我的目标是将每个车轮添加到我的车轮集合中。

对于扩展方法,有没有其他方法可以做到这一点:

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

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

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

我意识到做上面的事情本身就很简单,但对于这个项目,我希望尽可能使用3.5/4.0的附加功能。

谢谢!

.Net 4.0 C#-添加到集合而不进行手动循环

一点LINQ就能搞定

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

谢谢第四,我应该指出另一种情况。如果只有一个轮子,则Select将工作:

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

还有另一种方法:

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

或者如果是一个轮子:

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