मैं जानना चाहता हूं कि उपयोग करने के लिए बेहतर क्या है।LINQ ऑर्डरबी बनाम आईसीओएमपेयर
आईसीओएमपेयर कक्षा और सूची के लिए विधि या LINQ ऑर्डर के लिए विधि की तुलना करें। दोनों ठीक काम करते हैं लेकिन बड़ी सूचियों के लिए कौन सा बेहतर है।
मैं जानना चाहता हूं कि उपयोग करने के लिए बेहतर क्या है।LINQ ऑर्डरबी बनाम आईसीओएमपेयर
आईसीओएमपेयर कक्षा और सूची के लिए विधि या LINQ ऑर्डर के लिए विधि की तुलना करें। दोनों ठीक काम करते हैं लेकिन बड़ी सूचियों के लिए कौन सा बेहतर है।
मैं LINQ को दो कारणों से चुनूंगा।
मैं प्रदर्शन, मोटे तौर पर एक एकल पिरोया कार्यान्वयन के लिए समान होने के लिए अगर आप समझते हैं कि आपके OrderBy खंड में लैम्ब्डा अभिव्यक्ति एक समारोह को संकलित उम्मीद करेंगे - जो काफी है सब तुम वैसे भी IComparer को लागू करने से मिलता है।
कहा जा रहा है कि, आप अपनी तुलना विधि को बदलकर, अपने डेटा को पहले से सॉर्ट करने के तरीके के अनुरूप अपने सॉर्ट एल्गोरिदम को बदलकर एक प्रदर्शन को बढ़ावा दे सकते हैं। लेकिन मैं आज सुबह अपनी कॉफी को शर्त लगाने के लिए तैयार हूं कि आपके लिंक कथन में ऑर्डरबी क्विक्सोर्ट के कार्यान्वयन का उपयोग करता है, इसलिए यह शायद सामान्य मामले में शायद ही सभ्य है।
मैं सभी संग्रह-आधारित संचालन के लिए डिफ़ॉल्ट रूप से LINQ का उपयोग करना पसंद करता हूं। यहां का लाभ यह है कि मुझे उपयोग किए गए संग्रह के प्रकार (ऑर्डरबेय पर काम करता है) पर बहुत अधिक नहीं लगता है।
यदि आपके पास IList<T>
है, तो List.Sort शायद तेज़ होगा।
किसी भी तरह, मैं इसके बारे में चिंता नहीं करता से पहले वहाँ एक सिद्ध (यानी मापा) प्रदर्शन समस्या
है मैं शब्दार्थ लगता है दो बहुत अलग हैं, IComparer इंटरफ़ेस आपके द्वारा निर्धारित कैसे अपने प्रकार स्वाभाविक रूप से क्रमबद्ध किया जाता है, OrderBy की सुविधा देता है आपको कुछ विशिष्ट कुंजी, उदाहरण के लिए अपनी ऑब्जेक्ट्स को सॉर्ट करने का एक तरीका देता है क्वेरी ऑब्जेक्ट्स की एक सूची दी गई है, क्वेरी ए के लिए पहले नाम से सूची को सॉर्ट करें, क्वेरी बी के लिए सूची को क्रमबद्ध करें।
LINQ आपको अधिक लचीलापन देता है, लेकिन OrderBy के रूप में एक Func की आवश्यकता होती है जो आपके ऑब्जेक्ट प्रकार को लेता है और सॉर्ट करने के लिए उपयोग करने के लिए एक कुंजी देता है, जो भी कुंजी आप लौटते हैं उसे अभी भी आईसीओएमपेयर इंटरफ़ेस को लागू करने की आवश्यकता होगी।
एक बड़ी सूची पर प्रदर्शन के संदर्भ में, तुलनात्मक विधि में आप जो कर रहे हैं उसके आधार पर वहां शायद दो दृष्टिकोणों के बीच बहुत कम अंतर है, हालांकि यह आपके प्रकार के खिलाफ परीक्षण करना सबसे अच्छा है ।
सभी उत्तर के लिए thx। – senzacionale