如何将2个列表传递到Parallel.ForEach
示例:
List<Person> a = new List<Person>() { new Person(), new Person(), new Person() };
List<Car> b = new List<Car>() { new Car(), new Car(), new Car() };
//PSEUDO CODE
Parallel.ForEach(a, b, (person, car) => {
//WORK ON person, WORK ON car
});
我希望避免将Person和Car封装到对象容器中。这个是可能的吗?
发布于 2011-04-15 03:04:01
如果您正在使用.NET 4(您可能正在使用),并且您正在尝试将第一个Person
与第一个Car
配对,等等,您可以只使用Zip
List<Person> a = new List<Person>() { new Person(), new Person(), new Person() };
List<Car> b = new List<Car>() {} { new Car(), new Car(), new Car() };
var zipped = a.Zip(b, (person, car) => new { person, car });
Parallel.ForEach(zipped, pair => {
Person person = pair.person;
Car car = pair.car;
});
发布于 2011-04-15 03:03:56
您正在寻找Enumerable.Zip
https://stackoverflow.com/questions/5668285
复制相似问题