मेरे पास संग्रह है:
सार्वजनिक वर्ग myList: सूची & lt; myClass & gt; {}
और करें:
foreach (myLass obj in myList) {// ... if (some_condition) {myList.Add (newObj) ; } // ...}
इसलिए 2 पुनरावृत्ति से पहले मुझे त्रुटि मिलती है: संग्रह बदल गया था
। जाहिर है समस्या myList.Add (newObj) में है;
।
मैं त्रुटियों से बचने के लिए इस पाश को कैसे व्यवस्थित कर सकता हूँ? ध्यान रखें: मैं कुछ तत्वों को सूची में जोड़ सकते हैं, लेकिन कभी भी नहीं निकाल सकते हैं।
मैं बस Iterator के साथ आप संग्रह के दोहराव को मजबूर कर सकते हैं -> एक नया इटरेटर डुप्लिकेट संग्रह पर बनाया जाएगा। संग्रह को डुप्लिकेट करने का सबसे आसान तरीका विस्तार विधि ToArray () है जो सूची से एक सामान्य सरणी बनाता है। यह ऑब्जेक्ट की प्रतिलिपि नहीं करेगा, लेकिन केवल उनके संदर्भ। इसका मतलब है कि किसी भी परिवर्तन से पहले आप हमेशा संग्रह में सभी आइटमों पर लूप रहेंगे! कोई भी जोड़ा नहीं, कोई निकाला नहीं। पाश के लिए
का उपयोग कर सकता हूँ लेकिन इस मामले में मेरा कोड थोड़ा बदतर दिखाई देगा। शायद यहाँ कुछ बेहतर समाधान है?
foreach (myClass obj in myList.ToArray ()) {...}
No comments:
Post a Comment