मुझे एक फंक्शन मिला जो Collection<string>
देता है, और अंततः एक बड़े Collection<string>
को वापस करने के लिए स्वयं को कॉल करता है।दो संग्रह विलय <T>
अब, मुझे आश्चर्य है कि सूचियों को मर्ज करने का सबसे अच्छा तरीका क्या है? Collection.CopyTo()
स्ट्रिंग [] के लिए केवल प्रतियां, और foreach()
लूप का उपयोग अक्षम होने की तरह लगता है। हालांकि, चूंकि मैं डुप्लिकेट को फ़िल्टर करना भी चाहता हूं, मुझे लगता है कि मैं पर Contains()
पर कॉल करता हूं।
मुझे आश्चर्य है, क्या एक रिकर्सिव फ़ंक्शन रखने का एक और अधिक प्रभावी तरीका है जो डुप्लीकेट के बिना तारों की सूची देता है? मुझे Collection
का उपयोग करने की आवश्यकता नहीं है, यह बहुत उपयुक्त डेटा प्रकार हो सकता है।
केवल बहिष्करण, मैं विजुअल स्टूडियो 2005 और .NET 3.0 से जुड़ा हूं, इसलिए कोई LINQ नहीं है।
संपादित करें: स्पष्टीकरण के लिए: फ़ंक्शन उपयोगकर्ता को सक्रिय निर्देशिका से बाहर ले जाता है, उपयोगकर्ता की डायरेक्ट रिपोर्ट देखता है, और फिर प्रत्येक उपयोगकर्ता की प्रत्यक्ष रिपोर्ट को फिर से देखता है। तो अंतिम परिणाम किसी दिए गए उपयोगकर्ता की "कमांड चेन" में मौजूद सभी उपयोगकर्ताओं की एक सूची है। चूंकि इसे अक्सर निष्पादित किया जाता है और इस समय कुछ उपयोगकर्ताओं के लिए 20 सेकेंड लगते हैं, मैं इसे सुधारने के तरीकों की तलाश में हूं। 24 घंटे के परिणाम का कैशिंग मेरी सूची बीटीडब्ल्यू पर भी है, लेकिन मैं देखना चाहता हूं कि कैशिंग लगाने से पहले इसे कैसे सुधारें।
मुझे लगता है कि चेतावनी में शामिल हैं() फ़ंक्शन जिसे मुझे डुप्लिकेट की जांच करने की आवश्यकता है, क्योंकि इसे हर बार पूरी सूची में चलना पड़ता है। लेकिन एक रेफरी के रूप में गुजरना ओवरहेड को कम करने के लिए काम कर सकता है। –
रेफरी के रूप में पास करने से कोई फर्क नहीं पड़ता है जब तक कि आप myitems को कोई नई ऑब्जेक्ट निर्दिष्ट न करें। बस मूल्य से गुजरना काम करेगा (मान ऑब्जेक्ट का संदर्भ है, रेफरी ऑब्जेक्ट के संदर्भ वाले वेरिएबल का संदर्भ है)। – Zooba