c# - Sort list2 by list1 -


मेरे पास सूची 1 है:

  "जॉन डो" "जैक स्मिथ" "पीटर मिलर " 

और प्रत्येक आइटम पर फ़ंक्शन का उपयोग करके:

  सूची & lt; व्यक्ति & gt; List2 = नई सूची & lt; व्यक्ति & gt; (); Foreach (सूची 1 में स्ट्रिंग का नाम) list2.Add (GetPersonByName (नाम));  

मैंने सूची 2 (छोटा, असली में 30 + गुण हैं) का निर्माण किया है:

  {नाम: "जॉन डो", आयु: 55, रूम नोओ : 203} {नाम: "जैक स्मिथ", आयु: 40, रूम नोओ: 203} {नाम: "पीटर मिलर", आयु: 31, रूम नोओ: 202}  

अब तक अच्छा।

अब मैंने निष्पादन को समानांतर करने का निर्णय लिया:

  सूची & lt; व्यक्ति & gt; List2 = नई सूची & lt; व्यक्ति & gt; (); Parallel.ForEach (सूची 1, व्यक्ति = & gt; {list2.Add (GetPersonByName (name))}};  

जिसके परिणामस्वरूप एक unordered list2 हो सकता है।

मैं सूची 2 को उसी क्रम में कैसे कुशलतापूर्वक सॉर्ट कर सकता हूँ?

या वहां है एक सूची बनाने के लिए एक समानांतर foreach को बता दो। इनपुट सूची के क्रम में जोड़ें? ( GetPersonByName फ़ंक्शन भारी है - परिकलन नहीं, अधिकतर इंतजार करना।)

आपको रूपांतरण का उपयोग करके रूपांतरण समानांतर करने में सक्षम होना चाहिए, ताकि ऑर्डर एक समान रहे:

  सूची & lt; व्यक्ति & gt; List2 = list1.AsParallel ()। ASOrdered ()। चयन करें (name = & gt; GetPersonByName (name)) .toList ();  

संपादित करें: जोड़ा गया । एसोर्डर्ड () और CSharpie की टिप्पणी के जवाब में एमएसडीएन लेख के लिए एक लिंक।


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -