我想将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()中进行

09-08 09:10