排序嵌套列表和字典

时间:2018-12-06 11:56:41

标签: c# dictionary

如何实现List<Dictionary<string, string>>的排序。

我想根据字典中的第一个元素对列表进行排序。

我的数据看起来像

{
{{PID,A123},{SKU,TA50},{QTY,50}},
{{PID,C123},{SKU,TA52},{QTY,50}},
{{PID,B123},{SKU,TA53},{QTY,50}},
{{PID,A222},{SKU,TA54},{QTY,50}}
}

我正在尝试使输出看起来像

{
{{PID,A123},{SKU,TA50},{QTY,50}},
{{PID,A222},{SKU,TA54},{QTY,50}},
{{PID,B123},{SKU,TA53},{QTY,50}},
{{PID,C123},{SKU,TA52},{QTY,50}}
}

尝试过的解决方案 list.Sort-由于内容是字典,因此无法正常工作。 list.OrderBy-方法不可用。

正在使用的技术-Visual Studio Community 2017,.NET 4.6.1,控制台应用程序

2 个答案:

答案 0 :(得分:3)

Linq OrderBy()与字典["PID"]的键访问结合起来如何?

items = items.OrderBy(x => x["PID"]).ToList();

因此Dictionaies是有序的,但它们本身是have no order

答案 1 :(得分:3)

如果要按字典键对列表进行排序

var result = list.OrderBy(dict => dict["PID"]).ToList();

您需要在程序中引用using System.Linq;才能利用OrderBy的智能。

相关问题