मैं पूर्णांकों का निम्न सरणी हैLINQ का उपयोग कर एक int सरणी में शीर्ष 3 तत्व कैसे प्राप्त करें?
var topThree = (from i in array orderby i descending select i).Take(3);
जब मैं जाँच क्या topThree
अंदर है, मुझे लगता है:
int[] array = new int[7] { 1, 3, 5, 2, 8, 6, 4 };
मैं निम्नलिखित कोड सरणी में शीर्ष 3 तत्वों प्राप्त करने के लिए लिखा है:
{System.Linq.Enumerable.TakeIterator}
गिनती: 0
मैंने क्या गलत किया और मैं अपना कोड कैसे सही कर सकता हूं?
शीर्ष में वस्तु * परिणाम * नहीं है, यह * क्वेरी * है। शीर्ष तीन एक वस्तु है जिसका अर्थ है "सरणी में वस्तुओं के अनुक्रम को उच्चतम से निम्नतम तक क्रमबद्ध करें और पहले तीन को लें"। यह सब * इसका मतलब है। इसका मतलब यह नहीं है "8, 6, 5"। इसका मतलब है * क्वेरी *, न कि * परिणाम *। आप क्वेरी को निष्पादित करके, फिर सरणी को बदलकर और फिर क्वेरी को निष्पादित करके इसे प्रदर्शित कर सकते हैं। क्वेरी बिल्कुल वही है लेकिन परिणाम अलग हैं। –