从字典中的值列表中获取最大日期

从字典中的值列表中获取最大日期

问题描述:

我找不到优雅的Linq方法来检索分配给人员列表中某人的最大日期,该人员被分配到任务中。从字典中的值列表中获取最大日期

我的代码是

public class Mission 
{ 
    public string MissonAssignedTo { get; set; } 
    public DateTime Date { get; set; } 
} 

public Dictionary<string, Dictionary<string, List<Mission>>> MissionList = 
    new Dictionary<string, Dictionary<string, List<Mission>>>(); 

我有这个词典用这种价值观

MissionList[0] Key = MissionImpossible 
      Value = count 1 
        Key=Sean 
        Value=count 7 
         [0] = date = 10/01/2017 
         [1] = date = 10/01/2016 
         [2] = date = 10/01/2017 
         [3] = date = 10/01/2018 
         [4] = date = 10/01/2015 
         [5] = date = 10/01/2014 
         [6] = date = 10/01/2013 

MissionList[1] Key = MissionImpossibleThePayPack 
      Value = count 1 
        Key=Connery 
        Value=count 4 
         [0] = date = 10/01/2017 
         [1] = date = 10/01/2019 
         [2] = date = 10/01/2017 
         [3] = date = 10/01/2018 

我需要检索字典的每个人,他的最大日期,像这样的。

dicoResult= { 
       {Sean,10/01/2018} , 
       {Connery,10/01/2019} 
      } 

此致敬礼。 Jolynice

+1

你可以提供有效的C#代码字典样本吗?并显示你到目前为止已经尝试过 –

虽然你的自定义类型看起来怪我,如果我明白你正确,则这应该给您预期的结果: -

var result = MissionList.SelectMany(x => x.Value) 
         .ToDictionary(x => x.Key, y => y.Value.Max(z => z.Date)); 

首先拼合你内心的字典,最后项目的结果到字典使用ToDictionary

Sample Fiddle.

+1

谢谢Rahul,你是我的自定义类型很奇怪,我想我会改变它更精确。 – jolynice