Neden dizi uygular IList?
Tanımına bakınSistem.Dizisınıf
public abstract class Array : IList, ...
Teorik olarak, bu bit yazmak ve mutlu olmak gerekir
int[] list = new int[] {};
IList iList = (IList)list;
Ben de ılist herhangi bir yöntem aramak gerekir
ilist.Add(1); //exception here
Benim sorum bir durum, nedenini biliyorum, ama değildirneden Dizi uygular IList?
CEVAP
Bir dizi dizini hızlı erişim sağlar çünkü 6*/IList<T>
*olduğunu, bu destek sadece toplama arabirimleri. Belki de asıl soru "Neden dizin oluşturucu ile sürekli koleksiyonları için hiçbir arayüzü var mı?" Ve bunun için bir cevabım yok.
Koleksiyon arayüzleri ya da salt okunur yoktur. Ve sürekli bir dizin oluşturucu ile boy arayüzü daha fazla özlüyorum.
IMO orada daha genel birkaç koleksiyon arayüzleri bir koleksiyon özelliklerine göre olmalıdır. Ve adları bir dizin gerçekten aptal IMO ile de, List
farklı bir şey olmalıydı.
- Sadece Numaralandırma
IEnumerable<T>
- Salt okunur ama hiçbir oluşturucu (.Kont ., İçerir...)
- Yeniden boyutlandırılabilir ama hiçbir oluşturucu, yani gibi ayarlayın (Ekle, Kaldır,...)* *10 geçerli
- Salt okunur dizin oluşturucu ile (dizin oluşturucu, adres bilgisi,...)
- Dizin oluşturucu (bir pasör ile dizin oluşturucu) ile sabit boyutu
- Dizin oluşturucu ile değişken boyutu (, Ekle...) mevcut
IList<T>
Geçerli koleksiyon arayüzleri kötü bir tasarım bence. Ama özellikleri geçerli olan inan(ve bu, bu yöntemlerin sözleşmenin bir parçası) çünkü onlar ikamesi ilkesine aykırı değil.
Neden sıralanmamış bir dizi daha hızlı...
Neden&; dizi yineleme için... "* o kad...
Neden't karakterlerden oluşan bir...
Neden sıralanmış bir dizi sıralanmamış...
Neden dizi indis yerine kullanımına ku...