如何实现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,控制台应用程序
答案 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
的智能。