通过c#中特定嵌套字典键在嵌套字典中分组

时间:2017-01-17 21:19:18

标签: c# linq c#-4.0 grouping

我正在尝试根据其中一个字典键的值对嵌套字典进行分组。

Dictionary<Dictionary<string, object>, string> data= new Dictionary<Dictionary<string, object>, string>();

字典看起来像:

{
  {[value, 166], [entryDate, 1/1/2016], [id, 1]}, "vitalweight"},
  {[value, 176], [entryDate, 6/2/2016], [id, 2]}, "vitalweight"},
  {[value, 126], [entryDate, 1/1/2016], [id, 1]}, "vitalpulse"},
  {[value, 100], [entryDate, 1/1/2016], [id, 1]}, "vitaltemp"},
  {[value, 98], [entryDate, 6/2/2016], [id, 2]}, "vitaltemp"}
}

我正在尝试按entryDate对这些数据进行分组,这恰好是嵌套字典中的关键字之一,因此我可以将分组列表设置为:

{
  {[value, 166], [entryDate, 1/1/2016], [id, 1]}, "vitalweight"},
  {[value, 126], [entryDate, 1/1/2016], [id, 1]}, "vitalpulse"},
  {[value, 100], [entryDate, 1/1/2016], [id, 1]}, "vitaltemp"}
},
{
  {[value, 176], [entryDate, 6/2/2016], [id, 2]}, "vitalweight"},
  {[value, 98], [entryDate, 6/2/2016], [id, 2]}, "vitaltemp"}
} 

我尝试了不同的方式,没有一个我能够完成,我没有任何表现。但是试图使用linq查询对其进行分组。如果有人可以提供帮助,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

data = new Dictionary<Dictionary<string, object>, string>()
{
    {new Dictionary<string, object> {{"value", 166},{"entryDate", "1/1/2016"},{"id", "1"},},"vitalweight"},
    {new Dictionary<string, object> {{"value", 176},{"entryDate", "6/2/2016"},{"id", "2"},},"vitalweight"},
    {new Dictionary<string, object> {{"value", 126},{"entryDate", "1/1/2016"},{"id", "1"},},"vitalpulse"},
    {new Dictionary<string, object> {{"value", 100},{"entryDate", "1/1/2016"},{"id", "1"},},"vitaltemp"},
    {new Dictionary<string, object> {{"value", 98},{"entryDate", "6/2/2016"},{"id", "2"},},"vitaltemp"},
};

data.GroupBy(d=>d.Key["entryDate"]);

这假设您的所有关键词典都有此密钥。

我有输出:

enter image description here