Anlamsal olarak, a Dictionary<int, T>
ve List<T>
çok benzerler, her ikisi de .NET çerçevesinin rastgele erişim kapsayıcılarıdır. Bir listeyi sözlük yerine koymak için , listenizdeki boş alanları temsil etmek için türünüzde T
(benzeri null
) özel bir değere ihtiyacınız vardır . T
Gibi bir null tür değilse , yerine int
kullanabilirsiniz int?
veya yalnızca pozitif değerleri saklamak için bekliyorsanız, boş yuvaları temsil etmek için -1 gibi özel bir değer de kullanabilirsiniz.
Hangisini seçeceğiniz, anahtar değerlerinin aralığına bağlı olmalıdır. Dictionary<int, T>
İçindeki anahtarlarınız bir tamsayı aralığındaysa, aralarında çok fazla boşluk bırakılmadan (örneğin, [0, ... 100] 'den 80 değer), o zaman a List<T>
daha uygun olacaktır, çünkü indekse göre erişim daha hızlı olur ve Bu durumda sözlüğe kıyasla daha az bellek ve zaman yükü vardır.
Anahtar değerleriniz int
[0, ..., 1000000] gibi bir aralıktan 100 List<T>
değerse, sözlüğünüzün T değerinde 100 değerinde bir büyüklük sırasına göre sadece belleğe ihtiyaç duyacağı bir T'nin 1000000 değerinde T değerine sahip olması gerekir. 100 int değeri (artı bazı ek yükler, gerçekte bu 100 anahtarı ve değeri saklamak için hafızanın 2 katı kadar bekler). Böylece ikinci durumda bir sözlük daha uygun olacaktır.