1. Ana Sayfa
  2. C Sharp

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

C# Collection was modified enumeration operation may not execute Hatası
C# Collection was modified; enumeration operation may not execute Hatası
+ - 0

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.

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…

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. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)