C# 对嵌套列表和字典进行排序

C# 对嵌套列表和字典进行排序,c#,dictionary,C#,Dictionary,如何实现列表的排序 我想根据字典中的第一个元素对列表进行排序 我的数据看起来像 { {{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},

如何实现
列表的排序

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

我的数据看起来像

{
{{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、控制台应用程序

如何将Linq与字典的键访问结合起来
[“PID”]


因此,
词典
是按顺序排列的,但它们本身

如果您想按词典键对列表进行排序,那么

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

您需要使用System.Linq引用
以在intellisense中使用OrderBy。

添加
使用System.Linq
获取
OrderBy
“list.OrderBy-方法不可用。”-这是一个扩展方法。你是否有
使用System.Linq?由于字典元素没有顺序,因此没有“字典中的第一个元素”。@Sananfatalyiev Yeh我编辑过,如果需要有序的集合,使用字典听起来像是一种代码气味。它的顺序不稳定,在添加或删除项目后,您可能会得到不同的结果。感谢您抽出时间,按照社区的说法,如果两个答案正确且解决方案相同,我必须选择最先出现的答案。但非常感谢你们的支持。@AngadArora,很高兴听到……没问题。。fubo的答案和我的答案只差几秒钟…欢迎:)谢谢你的回答,我只是想知道我是否想说过滤这个列表,只在“SKU”=“TA50”的地方获取值,我如何才能做到这一点?@AngadArora
where(x=>x[“SKU”]=“TA50”)
var result = list.OrderBy(dict => dict["PID"]).ToList();