【发布时间】:2017-11-25 17:24:09
【问题描述】:
我有以下代码:
var dict = new Dictionary<byte?, List<Id>>();
foreach (var record in Records)
{
if(record.SubId.HasValue)
{
dict.Add(SubIdsDictionary[record.SubId.Value], new List<Record> { record });
}
else
{
dict.Add(IdsDictionary[record.Id.Value], new List<Record> { record });
}
}
Records 是一个名称的记录列表。在这个记录类中,我有 Id、SubId 和 Companyname。每个名字都有 id 作为强制性但 subid 不是。所以,如果名字有 subid 那么我必须优先考虑 subid 并首先从字典 SubIdsDictionary 中获取新的 sub id(因为 subid 是 ref dict SubIdsDictionary 中的关键)并制作新的subid 作为键,整个记录作为新字典 dict 中的值。但是,如果名称没有 subid,那么我将使用 id 并首先从引用 dict IdsDictionary 中获取新 id,并将新 id 作为键和值将是整个记录。 现在在新字典中,键将混合 id 和 subid,并且记录将作为 List 的值
有人可以帮我通过 lambda 转换这段代码吗?
【问题讨论】:
-
任何帮助????????
-
Dictionary<byte?, List<Id>>()我认为你不能有一个字典键为空,来填充你的new List<type>使用“(”,而不是“{” -
@CelsoLívero
new List<T>{ aT, anotherT }完全有效。这是一个集合初始化器。