.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的附加功能。
谢谢!
一点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); });