我想将EF对象列表转换为字典。我在某种程度上做到了这一点,但有一个缺点:我不知道如何根据该对象的属性将多个对象添加到一个key,value
对中。
例如,说我有一个带有三个值的实体框架对象TblValue
-ValueID, ValueNm, CodeID
。CodeID
将在对象之间共享-有些可能相同,有些可能不同。
我想创建一个Dictionary<TblCode, List<TblData>>
。 (TblCode
来自CodeID
。)基本上,我想使用LINQ创建此项目列表的字典,其中每个列表由CodeID
分隔和分组。
我之前使用的LINQ语句有效,但不会进行任何分组。这很接近吗,还是LINQ不适合这样做? foreach
循环会更好吗?var splitTimes = times.Cast<TblValue>().ToDictionary(o => tr.GetCode(o.CodeID));
澄清-我无法对值进行分组...。我无法创建Dictionary<TblCode, List<TblValue>>
,我只能创建Dictionary<TblCode, TblValue>
最佳答案
您需要先分组然后转换为词典。像那样:
var dictionary = tblValues
.GroupBy(table => table.CodeID)
.ToDictionary(values => values.Key);
如果需要转换密钥,请在
GroupBy()
或ToDictionary()
中进行