Поскольку «первое свойство» на универсального типа является то, что известно, вызвавшей метод, который преобразует items
в LinkedList
, вызывающий абонент может передать лямбда, который выбирает первый (второй, третий) пункт по мере необходимости, как это:
public static LinkedList<V> ToLinkedList<T,V>(
this IEnumerable<T> items, Func<T,V> selector
) {
return new LinkedList<V>(items.Select(selector));
}
вы можете вызвать этот метод так:
LinkedList<int> res = items.ToLinkedList(item => item.FirstField);
этот подход позволяет держаться подальше от модификации классы путем введения ненужных интерфейсов, а также позволяет работать с третьей стороной классов а зыбь.
Имеет ли первое свойство название? – dasblinkenlight
Если вы все создаете сами, вы можете заставить его ожидать интерфейса, а не разрешать ... –
Mr47