【问题标题】:A Dictionary of Dictionary from IQueryable来自 IQueryable 的字典字典
【发布时间】:2012-03-05 15:19:42
【问题描述】:

我想要一种从 IQueryable 公式返回字典字典的方法。通常,

Dictionary<int, Dictionary<DateTime, string>>

起初,我当然查看了 ToDictionary(),但找不到一个接一个地声明两个的方法。

然后,我查看了 ToLookup(),我有一种方法可以使用 ILookup 来携带它,字符串是我的辅助字典(DateTime.Tostring() + 另一个字符串)......你跟着吗? :) 但我并不觉得 ILookup 解决方案真的很舒服(将日期解析为字符串,当我收到数据时 -> 字符串到日期.. beuark)

那会给出类似的东西

return this.ttdc.Trackers.GroupBy(t => new { TrackerTaskId = t.TrackerTaskID, DateGenerated = t.TrackerDateGenerated })
                    .Select(t => new { taskId = t.Key.TrackerTaskId, DateGenerated = t.Key.DateGenerated, count = t.Count() })
                    .ToLookup(k => k.taskId.Value, k => k.DateGenerated.Value.ToString() + "|" + k.count);

现在,我正在考虑创建一个自创类列表,其中包含我需要的 3 个信息作为属性。

你能帮我选择最好的模式吗?此方法托管在 Windows 服务上,我想限制传输到客户端的数据量。

谢谢

【问题讨论】:

    标签: c# .net iqueryable


    【解决方案1】:

    这是一个示例,使用GroupByToDictionary

    var testValues = new[]{new {ID = 1, Date = new DateTime(2010,1,1), Str = "Val1"},
                           new {ID = 1, Date = new DateTime(2011,2,2), Str = "Val2"},
                           new {ID = 2, Date = new DateTime(2010,1,1), Str = "Val3"}};
    var dict = testValues.GroupBy(item => item.ID)
                         .ToDictionary(grp => grp.Key, 
                                       grp => grp.ToDictionary(item => item.Date, 
                                                               item => item.Str));
    

    【讨论】:

    • 成功了,感谢您的帮助......即使我有点惭愧之前没有尝试过。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 2015-10-21
    相关资源
    最近更新 更多