C# 如何将2个列表传递到Parallel.ForEach?
如何将两个列表传递到并行的.ForEach 例如:C# 如何将2个列表传递到Parallel.ForEach?,c#,.net,foreach,parallel-processing,C#,.net,Foreach,Parallel Processing,如何将两个列表传递到并行的.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)
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
});
List a=newlist(){new Person(),new Person(),new Person()};
列表b=新列表(){new Car(),new Car(),new Car()};
//伪码
平行。每辆车(a,b,(人,车)=>{
//在人身上工作,在车上工作
});
我宁愿避免将人和车封装到对象容器中。这可能吗?您正在寻找
可枚举的.Zip如果您正在使用.NET 4(您可能是),并且您试图将第一个人与第一辆汽车等配对,您可以使用:
List a=newlist(){new Person(),new Person(),new Person()};
列表b=新列表(){}{new Car(),new Car(),new Car()};
var zipped=a.Zip(b,(人,车)=>new{person,car});
Parallel.ForEach(拉链,成对=>{
Person=成对的人;
Car Car=pair.Car;
});
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;
});