我有两个已知大小相同的集合:
List<Drivers> drivers;
List<Car> cars;
我需要将驱动程序从i
地方放到i
汽车:
for (int i = 0; i < drivers.Count; i++)
cars[i].AssignDriver(drivers[i]);
我可以不用循环吗?
答案 0 :(得分:1)
嗯,在最低级别 - 没有。无论如何你都需要迭代。
但是有一些很好的库可以更容易地处理这种情况。例如,有Interactive Extensions for .NET。虽然它们不处于生产状态,但它们可以这样做:
cars.Zip(drivers, (car, driver) => new { car, driver })
.ForEach(x => x.car.AssignDriver(x.driver));
答案 1 :(得分:1)
LINQ仅用于查询对象,因此您需要使用循环。另一种方法是使用List.ForEach方法,但我建议不使用它,因为它有时令人困惑,无论如何以下是教育目的的例子:
drivers.Select((d,i) => new { Index = i, Driver = d })
.ToList()
.ForEach(entry => car[entry.Index].AssignDriver(entry.Driver));
有用的链接:
答案 2 :(得分:-1)
LINQ是你的朋友。看看这个: http://msdn.microsoft.com/en-us/library/bb548891.aspx
但请注意,我会认为您现有的方法也很好。