CSharp - 根据内部字典中的键在 List C# 内插入 List

  显示原文与译文双语对照的内容
0 0

我创建一个 List,它拥有字典字典,用于从wcf服务创建 Json 。

我正在创建这样的代码:


List<Dictionary<string, Dictionary<string, Object>>> superduperList = new List<Dictionary<string, Dictionary<string, Object>>>();

我正在用数据填充它,而Json看起来像这样:


[
{
DepartureJ: {},
ReturnJ: {},
pricesDepartureJ: {},
pricesReturnJ: {},
DepartureSegmentsJ: {},
ArrivalSegmentsJ: {}
},
...,
...,
...,
...,
...,
]

启动 array 是 List

第一个对象是字典字典,第一个字典中的对象再次是带键/值对的字典。现在,最后一个级别的字典是这样的:


"DepartureJ": {
 ArrivalDateTime:"2013-09-27T12:15:00",
 ArrivalDateTime_str:"12:15",
 StopQuantity: 0,
 StopQuantity_str:"Direct",
 TotalDuration:"50",
 TotalDuration_str:"0h 50mins",
 SeatsRemaining_str:"2",
 NoBag_str:"",
 NonRefundable: true,
 NonRefundable_str:"Non Refundable",
 FareBasisCode:"xxx-",
 RoutingId:"",
 GroupCompStr:"ATH-SKG-1xxxxxx-UOWA3--0",
 LineCompStr:"-2013-09xxxxxxxxxxxxxxxxxxxxxA3--3,0000000-1-0--",
 TotalAmount_From_Prices: 136.64
 }

现在我的问题是如何从 List的每个词典字典中的键TotalAmount_From_Prices排序外部。

我使用LINQ尝试,但不工作或者不知道如何:


superduperList.GroupBy(each_result=> each_result["DepartureJ"]["TotalAmount_From_Prices"]);

如果我创建一个新的List 或者改变现有的。

时间: 原作者:

0 0

其实我是以一种不同的方式来做的。

我创建了一个自定义类,用于保存以下数据:


public class each_flight
{
 public Dictionary<string, object> DepartureJ = new Dictionary<string, object>();
 public Dictionary<string, object> ReturnJ = new Dictionary<string, object>();
 public Dictionary<string, object> pricesDepartureJ = new Dictionary<string, object>();
 public Dictionary<string, object> pricesReturnJ = new Dictionary<string, object>();
 public Dictionary<string, object> DepartureSegmentsJ = new Dictionary<string, object>();
 public Dictionary<string, object> ArrivalSegmentsJ = new Dictionary<string, object>();

 public double total_price;

}

然后我创建了:


List<each_flight> flights = new List<each_flight>();

然后我在 List 中填充对象,然后用额外的双total_price对它们进行排序:


List<each_flight> Fligths_sorted = flights.OrderBy(o => o.total_price).ToList();

现在可以了:

原作者:
...