Collection was modified; enumeration operation may not execute

Merhabalar,

Visual Studio’da inner exception’a girip bu hatayı görüp google’ladıysanız hoş geldiniz 🙂

Ps: Hatanın Türkçesi : “Koleksiyon değiştirildi; sabit listesi işlemi yürütülemeyebilir“.


ornek

SENARYO

Koleksiyonu değiştirdiniz , çünkü çektiğiniz bir koleksiyondan gelen data başka bir koleksiyondan gelen data ile veya sabit bir veri ile örtüşüyorsa (yada örtüşmüyorsa) veriyi almak istememişsinizdir.

Gayet masumane bir şekilde döngünüzü kurmuş,if else bloklarınızı yapıştırmış “istanbul sen mi büyüksün ben mi ?” cümlesini kurmuş, bloğa takılan veriyi de (de ayrı) bloke etmiş (remove(item) ile) , tam ajax tan dönecek result ı beklerken hooopp hata…

item ı remove ettik koleksiyon 1 eksildi ama koleksiyonu güncellemedik, hala bir önceki toplam Count kadar döneceğini düşünüyor.

Çözüm ;

Ps 2:  Icollection'<“Model”>’

foreach(var item in dataList){

     if(item.Name == “Erol”) {

         dataList.Remove(item);

     } 

}

yerine ;

foreach(var item in dataList.ToList()){

     if(item.Name == “Erol”) {

         dataList.Remove(item);

     } 

}

şeklinde kullanmak olacaktır.

Ps 3 :  List'<“String”>’  ise;

##nesne isminin yine dataList olsun varsayarsak;

for (int i = dataList.Count -1; i >=0; i –){

    if(dataList[i] != “Beşiktaş”){

            dataList.Remove(dataList[i]);

        }

}

bu şekilde kullandığımızda koleksiyonun değiştirildiğine dair hatayı almayacak oluruz.

İyi çalışmalar.

Collection was modified; enumeration operation may not execute” için 4 yorum

Hakan Ç. için bir cevap yazın Cevabı iptal et