मैं इस आदेश के बारे में सोच रहा था कि सी # लूप में एक फोरच लूप System.Collections.Generic.List<T>
ऑब्जेक्ट के माध्यम से लूप करता है।प्रत्येक लूप के लिए एक सूची <T> पर एक सी # के लिए किस क्रम में पुनरावृत्ति करता है?
मुझे उसी विषय के बारे में another question मिला, लेकिन मुझे नहीं लगता कि यह मेरी संतुष्टि के लिए मेरे प्रश्न का उत्तर देता है।
कोई कहता है कि कोई आदेश परिभाषित नहीं किया गया है। लेकिन जैसा कि कोई और कहता है, यह ऑर्डर एक सरणी को पार करता है (0 से लंबाई -1 तक)। 8.8.4 The foreach statement
यह भी कहा गया था कि आदेश के साथ किसी मानक वर्ग के लिए यह समान है (उदा। List<T>
)। मुझे इसे वापस करने के लिए कोई दस्तावेज नहीं मिल रहा है। इसलिए मुझे पता है कि यह अब इस तरह काम कर सकता है, लेकिन शायद अगले .NET संस्करण में यह अलग होगा (भले ही यह असंभव हो)।
मैंने भाग्य के बिना List(t).Enumerator
दस्तावेज भी देखा है।
Another related question कहा गया है कि जावा के लिए, यह विशेष रूप से दस्तावेज में उल्लेख किया गया है:।
List.iterator()
उचित अनुक्रम में इस सूची में तत्वों पर एक इटरेटर रिटर्न "
मैं देख रहा हूँ सी # दस्तावेज में ऐसा कुछ।
अग्रिम धन्यवाद।
संपादित करें: आपके सभी उत्तरों के लिए आप सभी के लिए धन्यवाद (आश्चर्यजनक है कि मुझे कितने तेज़ जवाब मिले)। मैं सभी उत्तरों से क्या समझता हूं कि List<T>
हमेशा इसके अनुक्रमण के क्रम में पुनरावृत्त होता है। लेकिन मैं अभी भी Java documentation on List
के समान, दस्तावेज की एक स्पष्ट शांति देखना चाहता हूं।
मैं सचमुच सिर्फ 5 सेकंड पहले एक जवाब के लिए जाँच की, और के बारे में कुछ इसी तरह पोस्ट करने के लिए था बदलने के लिए LINQ का उपयोग करना। तुम बहुत तेज हो! –
आपके उत्तरों के लिए धन्यवाद। क्या कुछ दस्तावेज हैं जो इसकी गारंटी देता है? –
एक IList के लिए आप निश्चित रूप से उस मानक कार्यान्वयन का बेहतर पालन करते हैं। कुछ संग्रहों के लिए संग्रह में वस्तुओं की एक स्पष्ट क्रम नहीं है, इसलिए इसे अलग-अलग कार्यान्वित किया जा सकता है। –