[英]How to order a list using the child dictionary inside using Linq?
public class A {
public string Name {get; set;}
public Dictionary<string, decimal> B {get; set;}
}
如何使用 B 中的值订购 List< A >? 例子:
var list = new List<A>(){
new A(){
Name = "data1",
B = new Dictionary<string, decimal>()
{"QTY", 10},
{"PRICE", 20}
},
new A(){
Name = "data2",
B = new Dictionary<string, decimal>()
{"QTY", 100},
{"PRICE", 200}
},
};
**我想按“数量”升序对列表进行排序。
检查值并确保密钥存在于字典中
var sortONPrice = list.OrderBy(x => x.B.ContainsKey("QTY") ? x.B["QTY"]:0);
如果不是,则提供一个值,我选择零,但它可以是任何任意值。
假设你有一个var list = new List<A>()
,你想要
var ordered = list.OrderBy(x => x.B.First(xx => xx.Key == "QTY").Value);
当然,其中不包括任何空检查或检查您的字典以验证密钥QTY
存在。 如果您不确定所有项目是否存在QTY
您将需要FirstOrDefault
而不是First
,并进行相应处理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.