有一个嵌套列表
public Dictionary<dynamic, Dictionary<string, dynamic>> Data = new();
以下数据被动态添加到其中:
Data .Add(ID, new Dictionary<string, dynamic> {
{ "Addr", Addr },
{ "Pos", Pos },
{ "Description", Description },
{ "Number", Number }
});
结果,我们得到一个近似列表:
Data["adx01"][{"Addr":5},{"Pos":100},{"Description":"Описание1"},{"Number":44}];
Data["vdx11"][{"Addr":2},{"Pos":45},{"Description":"Описание2"},{"Number":12}];
Data["ydx50"][{"Addr":3},{"Pos":67},{"Description":"Описание3"},{"Number":71}];
Data["zdx31"][{"Addr":10},{"Pos":9},{"Description":"Описание4"},{"Number":33}];
我需要按“数字”字段对其进行排序,使其看起来像这样:
Data["ydx50"][{"Addr":3},{"Pos":67},{"Description":"Описание3"},{"Number":71}];
Data["adx01"][{"Addr":5},{"Pos":100},{"Description":"Описание1"},{"Number":44}];
Data["zdx31"][{"Addr":10},{"Pos":9},{"Description":"Описание4"},{"Number":33}];
Data["vdx11"][{"Addr":2},{"Pos":45},{"Description":"Описание2"},{"Number":12}];
什么方法可以做到这一点?
答案:aepot:Data=Data.OrderBy(pair => (int)pair.Value["Number"]).ToDictionary(pair => pair.Key, pair => pair.Value)
获取数据模型
然后你可以这样排序
字典本身不能被视为有序数据结构,因此将
ordered类型枚举器推IEnumerable<KeyValuePair<string, Item>>回字典是没有意义的。并为字典使用比较类型的强类型键。