शीर्षक में। मुझे पता है कि यह हटाए गए सामानों से पहले और बाद में 2 उपन्यासियों को विलीन कर देता है, लेकिन आखिरी तत्वों को हटाते समय यह विधि कैसे व्यवहार करती है? दूसरे शब्दों में: क्या यह किसी भी तरह इंडेक्स को हटाने से पहले स्थित सभी तत्वों की प्रति बना देता है? मैं सिर्फ एक विशाल सूची (निकालें 5000 तत्वों) पर निकालेंगे का उपयोग करने के perfomance के बारे में उत्सुक हूँ f.e. को हटाने के लिए। उनमें से केवल अंतिम 2।RemoveRange() विधि सूची <> में कैसे काम करता है?
यदि यह एक प्रतिलिपि बनाता है, तो क्या कुछ आंतरिक चर बदलने के लिए एक तरीका है जो सूची का आकार निर्धारित करता है (और बाकी आवंटित तत्वों को कचरा के रूप में मानता है)?
मुझे केवल एक जानकारी मिल गई, यह एक ओ (एन) जटिलता एल्गोरिदम है, लेकिन मुझे यकीन नहीं है कि उस मामले में "एन" एक सूची आकार है, या हटाने के लिए कई आइटम हैं।
किसी भी संकेत के लिए खुश होंगे।
http://msdn.microsoft.com/en-gb/library/y33yd2b5.aspx "यह विधि एक ओ (एन) ऑपरेशन है, जहां एन गणना है।" "आइटम हटा दिए गए हैं और सूची में उनके बाद के सभी तत्वों की गणना उनकी इंडेक्स गिनती से कम हो गई है।" http://geekswithblogs.net/BlackRabbitCoder/archive/2012/02/23/c.net-little-wondersndashthe-listlttgt-range-methods.aspx "जागरूक रहें कि इससे शेष सूची को स्थानांतरित करने की आवश्यकता होती है अंतर को भरें, जो गैर-तुच्छ हो सकता है।हालांकि, इसे सूची के पुनर्वितरण की आवश्यकता नहीं होगी क्योंकि आकार संभावित रूप से घट रहा है, बढ़ रहा है। " –
आपको लगता है कि गिनती को हटाने की संख्या है। दस की सूची से 2 को हटाने से वही समय लगेगा एक लाख से 2 को हटा रहा है। यदि आप प्रलेखन में गिनती पर क्लिक करते हैं तो यह सूची गणना को लिंक करता है। – Paparazzi
@Blam यह सच नहीं है, जब तक आप सूची के अंत से हटा नहीं रहे हैं। अगर आप सूची की शुरुआत से हटा रहे हैं तो यह दो वस्तुओं द्वारा स्मृति में 8 आइटमों को स्थानांतरित करने के बीच अंतर है, दो वस्तुओं द्वारा स्मृति में 1, 999,998 आइटमों को स्थानांतरित कर रहा है। वे दोनों बराबर नहीं होंगे। – Servy