从字典中的值列表中获取最大日期
问题描述:
我找不到优雅的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
答
虽然你的自定义类型看起来怪我,如果我明白你正确,则这应该给您预期的结果: -
var result = MissionList.SelectMany(x => x.Value)
.ToDictionary(x => x.Key, y => y.Value.Max(z => z.Date));
首先拼合你内心的字典,最后项目的结果到字典使用ToDictionary
。
+1
谢谢Rahul,你是我的自定义类型很奇怪,我想我会改变它更精确。 – jolynice
你可以提供有效的C#代码字典样本吗?并显示你到目前为止已经尝试过 –