排序字典时出错

本文关键字:出错 字典 排序 | 更新日期: 2023-09-27 18:00:34

 private Dictionary<string, Dictionary<string, string>> sort(Dictionary<string,                                       Dictionary<string, string>> prods)
    {
        int a, b;
         var sortedDict =new Dictionary<string, Dictionary<string, string>>();
         sortedDict = from entry in prods orderby entry.Value["SortOrder"] ascending select entry;
        return sortedDict;
    }

错误:

错误4无法隐式转换类型'System.Linq.IOrderedEnumerable>>'到'System.Collections.Generic.Dictionary>'。存在显式转换(是否缺少强制转换?(

排序字典时出错

您可以使用ToDictionary来创建字典,但这实际上并不能达到您想要的效果。

简单地Dictionary<,>不是排序的数据结构。不应依赖排序。即使当前实现可能会按添加顺序返回条目,这也是一个实现细节:

为了枚举的目的,字典中的每个项都被视为代表一个值及其键的KeyValuePair<TKey, TValue>结构。返回项目的顺序未定义。

您可能想查看SortedDictionary<,>,但考虑到排序顺序似乎取决于而不是键,这可能是不可行的。

根据您要做的操作,您可能只需声明返回IEnumerable<KeyValuePair<string, Dictionary<string, string>>