Ответ 1
Самый простой способ - создать словарь с помощью ToDictionary
, а затем вызвать конструктор SortedList<TKey, TValue>(dictionary)
. Кроме того, добавьте свой собственный метод расширения:
public static SortedList<TKey, TValue> ToSortedList<TSource, TKey, TValue>
(this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector,
Func<TSource, TValue> valueSelector)
{
// Argument checks elided
SortedList<TKey, TValue> ret = new SortedList<TKey, TValue>();
foreach (var item in source)
{
// Will throw if the key already exists
ret.Add(keySelector(item), valueSelector(item));
}
return ret;
}
Это позволит вам создать SortedList
с анонимными типами в качестве значений:
var list = people.ToSortedList(p => p.Name,
p => new { p.Name, p.Age });