.NET'te, int capacity
numaralı parametreleri içeren Dictionary<TKey, TValue>
için bir yapıcı var. Bu, List<T>
, Queue<T>
ve Stack<T>
gibi diğer birçok koleksiyonla aynıdır; ayrıca, the MSDN documentation:Neden Dictionary.TrimExcess() var mı?
'a göre Bir Sözlükün kapasitesi, yeniden boyutlandırmadan önce Sözlüğe eklenebilecek öğelerin sayısıdır. Öğeler bir Sözlüğe eklendikçe, iç diziyi yeniden tahsis ederek kapasite gerektiği gibi otomatik olarak artırılır.
Bu
özelliği hemen hemen bana bu koleksiyonları yana vbList<T>
gibi diğer koleksiyonları ile aynı sesler otomatik boyutlandırma gerekli ve bunların çoğu bir özelliği, gerekenden daha büyük bir kapasiteye sahip olması dolayısıyla muhtemel davranış
TrimExcess
yöntemi. Bu, koleksiyona bir defada bilinmeyen sayıda öğe eklediğiniz ve bu sayede ek öğeler eklemeyeceğiniz anlamına gelir.
Dictionary<TKey, TValue>
neden bu kadar değil TrimExcess
yöntemi?
(Yasal Uyarı: tepkisi "varsayılan olarak bulunmaz özellikler" ile oldukça aşina değilim; ben Dictionary
için TrimExcess
mantıklı, ya da neden bunu değil belirli bir nedeni var mı, çoğunlukla sadece merak ediyordum List
gibi basit koleksiyonları için uygulanması daha çok daha zor olurdu)
yana ' HashSet' bir 'TrimExcess' yöntemine sahiptir ve ayrıca HashTable ile dahili olarak çalışır, 'Dictionary' için' TrimExcess 'uygulamasının teknik bir nedeni yoktur. Hatta belgelerde 'HashSet'in değerler olmadan 'Sözlük' olduğunu söylerler. – Kjara