C#' da IEnumerable, ICollection ve IList arayüzlerinin farkı nedir?

hakan (15424) 10 yıl önce sordu

Pek çok örnek C# uygulamasında IEnumerable,  ICollection ve IList arayüzlerinin kullanıldığını görüyorum. IEnumerable,  ICollection ve IList arasında ne farklar var? Hangi durumlarda hangisi kullanılmalıdır? Artıları, eksileri nelerdir? .Net içerisindeki bu türler çoğu zaman kafa karıştırıcı oluyor.

C#' da IEnumerable,  ICollection ve IList  arayüzlerinin farkı nedir?

Toplam 1 cevap


alattin (16999) 10 yıl önce cevapladı

IEnumerable,  ICollection ve IList adlarının .net içerisinde sıkça karşılaşılan arayüzlerdir.

Bu arayüzler arasındaki farklılıkları şöyle sıralayabilirim:

IEnumerable (Interface): 

Belirli bir türü barındıran koleksiyon üzerinde yineleme yetenegine sahip temel arayüzdüz.

 IEnumerable arayüzü Collection ve IList için temel oluşturur. Yani bu iki arayüz  IEnumerable arayüzünü kullanır. Temel olarak;

Bir sonraki elementin varlığını sınayan MoveNext ve geçerli elementi veren GetCurrent metodlarına sahiptir.

ICollection:
IEnumerable arayüzünü kullanır. Farklı olarak;
Add element ekleyen
Remove element silen
Contains ​elementin varlığını sınayan 
metodları vardır.
 

IList:
ICollection ve  IEnumerable arayüzlerini kullanır. Farklı olarak;
Insert belirtilen indekse element ekleyen
RemoveAt belirtilen indeksten elementi çıkaran
IndexOf belirtilen indeksteki elementi döndüren

metodları vardır.