У меня есть ConcurrentDictionary<Guid, Foo> _dic = new();
Класс Foo внутри себя имеет несколько полей. Мне нужно только одно поле.
В плане реализации - можно использовать _dic.Values.Select(x => x.needProperty).ToList(), НО сама property Values под капотом создаёт новый List. Как-нибудь можно без двойного преобразования к List получить лист нужных property из класса Foo? Нужно получить только одно конкретное поле needProperty.
С помощью каста тоже не получится, т.к. IEnumerable к IReadOnlyList не кастится ((IReadOnlyCollection)_dic.Values.Select(x => x.needProperty) - будет ошибка)
https://github.com/microsoft/referencesource/blob/master/mscorlib/system/collections/Concurrent/ConcurrentDictionary.cs

https://source.dot.net/#System.Linq/System/Linq/Where.SpeedOpt.cs,6e33b46aba3510c8
