C# Collection was modified enumeration operation may not execute Hatası

C# Collection was modified enumeration operation may not execute Hatası

17 Mayıs 2019 0 Yazar: Mustafa BÜKÜLMEZ
Toplam Görüntülenme : 232
Yaklaşık okuma süresi : 2 DK
C# DevExpress GirdView Hücre Reklendirme
C# FTP Server Klasör Silmek

C# Collection was modified enumeration operation may not execute Hatası ile karşılaştıysanız ve bu yazımı bulduysanız doğru yere geldiniz demektir.

C# Collection was modified enumeration operation may not execute Hatası

Bu hatanın Türkçe karşılığı : “Koleksiyon değiştirildi; sabit listesi işlemi yürütülemeyebilir“.

Bu hata bir koleksiyonun değiştirilmesine bağlı olarak çıkan bir hatadır. Bu hatanın çıkma sebebi ise bir yerden çektiğiniz koleksiyondan gelen veri başka bir koleksiyon ile örtüşüyordur yada örtüşmüyordur ve sizde bunu almak istemiyorsunuzdur.

Advertisements

Bu amaç ile bir döngü kurmuşsunuzdur ve istemediğiniz itemleri Remove komutu ile silmişsinizdir. Bu temizleme işleminden sonra bir sonucu almak istediğinizde bu hata ile karşılaşırsınız. Burada koleksiyondan bir item sildik ama koleksiyonu güncellemedik. Bu yüzden döngümüz hala listenin ilk halindeki item sayısı kadar döneceğinden bu hatayı alırız.

Bunun sebebi ise koleksiyonların metodlarından olan Count() metodu liste doldurulduğunda çalıştığı için olduğunu düşünüyorum. Koleksiyona ilk defa bir şey yüklediğimizde yüklenen itemlerin sayılarını alıyor ve hafızada tutuyor. Bu bilgiyi güncellemek için de bize ToList() metodunu vermiş olmalılar. En azından ben böyle düşünüyorum.

Örnek olarak şöyle bir döngümüz var diyelim

foreach(var item in dataList){
     if(item.Name == "Mustafa") {
         dataList.Remove(item);
     } 
}

bu hata ile karşılaşmamak için kodlarımızı aşağıdaki gibi düzenlemeliyiz.

foreach(var item in dataList.ToList()){
     if(item.Name == "Mustafa") {
         dataList.Remove(item);
     } 
}

Yada aşağıdaki gibi kullanabilirsiniz.

for (int i = dataList.Count -1; i >=0; i –){
    if(dataList[i] != "Fenerbahçe"){
            dataList.Remove(dataList[i]);
        }
}

Bu şekilde kullanarak da bu hatadan kaçınabiliriz.


C# Collection was modified; enumeration operation may not execute Hatası, çözüm dersimizde bu kadar arkadaşlar. Diğer derslerimizde görüşmek üzere…

İlgili İçerik  C# String İşlemleri - Örneklerle Anlatım

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…

Takipte ve Sağlıcakla kalın. 😉

C# DevExpress GirdView Hücre Reklendirme
C# FTP Server Klasör Silmek