如何把它转换成字典的字典
本文关键字:字典 转换 | 更新日期: 2023-09-27 18:07:20
如何将其更改为:Dictionary<string, Dictionary<DateTime, double>>
var data = segGroups.Join(pPeriods, s => s.segid, p => p.entid, (s, p) => new
{
Name = s.SegCode, // string
Time = p.StartLocal, // datetime
TR = p.Volume // double
})
.GroupBy(s => s.Name)
.ToList();
字符串将是Name
,内部字典将是DateTime
和TR
对。
var dictionary = data.ToDictionary(group => group.Key,
group => group.ToDictionary(item => item.Time, item => item.TR));
注意这里没有强制转换。选角就是在不改变事物本来面目的情况下,将其视为其他事物。这是通过创建一个完全基于其他值的新对象将列表转换为字典。这是一个很重要的区别
你不必在ToDictionary
之前调用ToList()
,除非你真的在其他地方使用该列表:
var data = segGroups.Join(pPeriods, s => s.segid, p => p.entid, (s, p) => new
{
Name = s.SegCode, // string
Time = p.StartLocal, // datetime
TR = p.Volume // double
})
.GroupBy(s => s.Name)
.ToDictionary(g => g.Key, g => g.ToDictionary(i => i.Time, i => i.TR));
data
将被输入到Dictionary<string, Dictionary<DateTime, double>>
中。
您还必须确保每个组中的Time
是唯一的。否则,ArgumentException
将被抛出,因为Dictionary
中的两个条目不能具有相同的Key
。