[c#] for和foreach


foreach是取只讀的,在取的時候數據隊列不能變(包括修改,刪除,添加等)。要避免這個問題,就應該使用for循環。

             IList<Person> iList = new List<Person>();

            iList.Add( new Person("david",13));
            iList.Add(new Person("bob", 11));
            iList.Add(new Person("justin",12));
 

// 用linq重新排序 

            var textList = (from c in iList
                orderby c.age
                    select c);

 

            int iPerson =0;
            foreach (Person p in textList)
            {
                // 這時候在immediate Window里面輸入iList.RemoveAt(2),程序會拋出異常
                Console.WriteLine(p.name + ":" + p.age);
                iList[iPerson] = p; // 排序后修改原來的隊列!!!
                iPerson++;
            }
            for (int ii = 0; ii < iList.Count; ii++)
            {
                // 這時候在immediate Window里面輸入iList.RemoveAt(2),程序不會拋出異常
                Console.WriteLine(iList[ii].name);
            }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM