बीच क्या अंतर है AddRange और Concat एक सामान्य सूची कार्यों? क्या एक दूसरे पर सिफारिश की जाती है?
जवाबों:
उनके पास बिल्कुल अलग शब्दार्थ है।
AddRange इसमें अन्य आइटम जोड़कर सूची को संशोधित करता है।
कॉनैट सूची को संशोधित किए बिना सूची और अन्य मदों से युक्त एक नया अनुक्रम लौटाता है।
जो भी आप चाहते हैं शब्दार्थ चुनें।
बड़ा अंतर यह है कि AddRange उस सूची को उत्परिवर्तित करता है, जिसके खिलाफ इसे कहा जाता है जबकि कॉनसैट एक नई सूची बनाता है। इसलिए उनके अलग-अलग उपयोग हैं।
कॉनकैट भी एक विस्तार विधि है जो किसी भी IEnumerable पर लागू होती है और एक IEnumerable देता है। आपको एक नई सूची में परिणाम के लिए .ToList () की आवश्यकता होती है।
यदि आप मौजूदा सूची की सामग्री का विस्तार करना चाहते हैं तो AddRange का उपयोग करें।
यदि आप दो IEnumerable स्रोतों से एक नई सूची बना रहे हैं, तो .TList के साथ Concat का उपयोग करें। इसका यह गुण है कि यह किसी भी स्रोत को परिवर्तित नहीं करता है।
यदि आपको कभी भी दो सूचियों (या किसी अन्य IEnumerable) की सामग्री की गणना करने की आवश्यकता होती है, तो बस हर बार कॉनसैट का उपयोग करें, इसका लाभ यह है कि वास्तव में एकीकृत सूची रखने के लिए नई मेमोरी को आवंटित नहीं करना है।
मुझे यह दिलचस्प लेख इन 2 संरचनाओं के बीच अंतर और उनके प्रदर्शन की तुलना के बारे में बात करते हुए मिला ...
मुख्य विचार यह है कि AddRange बहुत तेज़ है जब इसके बड़े आकार के संग्रह के बारे में।
यहाँ लिंक है
उम्मीद है की यह मदद करेगा,
Concatऔर AddRangeएक साथ List<KeyValuePair<string, string>>1000 तत्वों, concatenated / जोड़ा 100 बार, और साथ AddRangeअत्यंत तेजी से किया गया था। परिणाम ये थे: AddRange13 एमएस, Concat().ToList()16,000 एमएस, और अंत में केवल Concatएक IEnumerableकर ToListपर: 2,700 एमएस।