微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决.Net 4.0 C#-添加到没有手动循环的集合中

|| 我是4.0框架(来自2.0)的新手,而且我不确定要如何表达这个问题,因此我认为与Google碰碰运气相比,最容易提出这一问题。 这是方案: 假设我有一个类“ Wheel”的集合,而我有一个类“ Vehicle”的集合,其中每个车辆对象都有一个“ Wheel”的集合。我的目标是将每个“车辆的车轮”添加到“车轮”集合中。 使用扩展方法,还有另一种方法可以执行此操作:
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); });
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。