क्या यह जानने का कोई तरीका है कि IQueryable<T>
का आदेश दिया गया है (OrderBy
या OrderbyDescending
का उपयोग कर)?यह निर्धारित करें कि एक IQueryable <T> का आदेश दिया गया है या नहीं
तो मुझे पता है कि संग्रह पर OrderBy
या ThenBy
पर कॉल करना है या नहीं।
IQueryable<Contact> contacts = Database.GetContacts();
मैं contacts is IOrderedQueryable<Contact>
की कोशिश की, लेकिन यह हमेशा सच है।
संपादित करें: मैंने अभी अपना उदाहरण बदल दिया है, पिछला कोई वास्तव में मेरा बिंदु नहीं दिखा रहा था। मान लें कि GetContacts
इकाई फ्रेमवर्क का उपयोग करता है और बस तालिका के सभी रिकॉर्ड देता है।
बाद में, मैं contacts
पर कई फ़ंक्शन लागू करता हूं, मुझे नहीं पता कि ये कार्य क्या करते हैं। वे IQueryable<Contact>
को सॉर्ट या फ़िल्टर कर सकते हैं।
जब मुझे संग्रह वापस मिल जाता है, तो मुझे इसे एक बार फिर क्रमबद्ध करने की आवश्यकता होती है। ऐसा करने के लिए, मुझे यह जानने की ज़रूरत है कि मुझे OrderBy
, या ThenBy
पर कॉल करने की आवश्यकता है या नहीं। तो अगर मैं पहले ही सॉर्ट कर चुका हूं तो मैं पूरे संग्रह को पुन: व्यवस्थित नहीं करता हूं।
आप 'IQueryable' के दायरे में रह रहे हैं, आप चिंता करने की जरूरत है यहाँ है कि मैं क्या के साथ आया है? मेरा मतलब यह है कि, अतिरिक्त 'ओडरबी' का परिणाम अंतर्निहित डेटा स्रोत पर प्रदाता द्वारा वास्तव में निष्पादित किए गए किसी भी बदलाव में नहीं हो सकता है। – AakashM
@AakashM, अगर मैं पहले से क्रमबद्ध 'IQueryable' पर' ऑर्डरबी 'कहता हूं तो मैं उस तरह से हार जाता हूं। मैं बस इसमें जोड़ना चाहता हूं। –
मैं वास्तव में सोच रहा था कि आप perf के बारे में चिंता कर रहे थे। हमेशा 'ThenBy' का उपयोग करने के बारे में कैसे? – AakashM