2015-07-28 2 views
2

Какова величина по умолчанию SortedList в System.Collections.Generic? Кто-то сказал мне, что это 4, но в следующем примере показано 0. Зачем?Сортированный список в дженериках

 SortedList<int,string> sortedlist = new SortedList<int,string>(); 
     Console.WriteLine(sortedlist.Capacity); 
+0

может у вас, пожалуйста, привести пример? –

+0

Таким образом, мы не можем сказать, что его емкость по умолчанию равна 4. –

+0

Возможно, выход из [данного примера] (http://csharppad.com/gist/7861e2e3f85902c0ec3f). Обратите внимание, что пропускная способность достигает 4, как только вы добавляете элемент. – kdbanman

ответ

0

Zero - это емкость по умолчанию для универсальной версии. Он увеличивается по мере добавления элементов, изначально увеличивая размер до 4 после добавления элемента. Можно определить начальный размер, используя конструктор SortedList(Int32). Емкость всегда будет по крайней мере такой же, как и Count. Его можно обрезать до точного числа в Count, используя TrimToSize().

Full Documentation

6

documentation немного расплывчато об этом, просто сказать, что список будет иметь «начальную емкость по умолчанию».

Однако комментарий в reference source говорит, что это:

конструирует новый отсортированный список. Сортированный список изначально пуст и имеет емкость, равную нулю. При добавлении первого элемента в отсортированный список емкость увеличивается до _defaultCapacity, а затем увеличивается в два раза по величине как . Элементы отсортированного списка упорядочены в соответствии с интерфейсом Icomparable , который должен быть реализован посредством ключи от все записи добавлены в отсортированный список.

_defaultCapacity является 4.

Таким образом, чтобы ответить на ваш вопрос: по умолчанию как 0и4, в зависимости от того, находятся ли добавлен элемент.

+0

да u r right.Thanks много –

Смежные вопросы