C#Linq返回SortedList

前端之家收集整理的这篇文章主要介绍了C#Linq返回SortedList前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何让C#中的 Linq返回一个给出IEnumerable的 SortedList?如果我不能,可以将IEnumerable转换或转换为SortedList吗?

解决方法

最简单的方法可能是使用ToDictionary创建一个字典,然后调用SortedList< TKey,TValue>(dictionary)构造函数.或者,添加您自己的扩展方法
public static SortedList<TKey,TValue> ToSortedList<TSource,TKey,TValue>
    (this IEnumerable<TSource> source,Func<TSource,TKey> keySelector,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;
}

这将允许您使用匿名类型创建SortedLists作为值:

var list = people.ToSortedList(p => p.Name,p => new { p.Name,p.Age });

猜你在找的C&C++相关文章