Ответ 1
Если вы используете .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;
});