2011-04-14 6 views
18

मैं 2 सूचियों को Parallel.ForEach में कैसे पास करूं?मैं समांतर में 2 सूचियों को कैसे पास करूं? के लिए?

उदाहरण:

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 
}); 

मैं वस्तु कंटेनर में व्यक्ति और कार encapsulating से बचने के लिए पसंद करेंगे। क्या यह संभव है?

किसी भी मदद के लिए धन्यवाद!

उत्तर

24

लिए देख रहे हैं और आप पहले Car आदि के साथ पहली Person जोड़ी की कोशिश कर रहे हैं, तो आप सिर्फ 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; 
}); 
+0

धन्यवाद !!! यह बेकार ढंग से काम किया। – PiZzL3

10

आप .NET 4 (जो आप शायद कर रहे हैं) उपयोग कर रहे हैं के लिए Enumerable.Zip

संबंधित मुद्दे