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

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s