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 . TGibi bir null tür değilse , yerine intkullanabilirsiniz 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.