это не определено в C # spec?
Это не определено в спецификации C #, потому что это не функция C # - это деталь реализации фреймворка.
.Values
лениво создается один раз при первом запросе; после этого раздается существующее значение. Так что да, некоторая память может быть выделена при первом использовании. Тем не менее, он не содержит снимок копии значений, так что это не
дорогое распределение. Он просто содержит ссылку на экземпляр родительского словаря.
private Dictionary<TKey, TValue> dictionary;
буквально единственное поле в ValueCollection<TKey, TValue>
. По сути, это фасад, который обеспечивает ценностно-ориентированное представление одних и тех же данных.