【问题标题】:Returning Dictionary<string,?> from LINQ to SQL从 LINQ 到 SQL 返回 Dictionary<string,?>
【发布时间】:2018-02-27 10:35:58
【问题描述】:

我有一个 LINQ to SQL 查询,其最终 select 是这样的:

 select new{
                id = <result id>,
                serial = <result serial>,
                type = <result type>,
                model = <result model>
        }

在此之后,我想在本地对结果进行分组。 我需要这样的输出 JSON:

[   
    {
        "id":group_id, 
        "data":[
                {...},
                {...}
               ]
    }
]

到目前为止,我已经设法做这样的事情:

var res = q.ToList();
var dict = res.GroupBy(m => m.machine).ToDictionary(g => g.Key, g => g.ToList());

然后我用它序列化它

Newtonsoft.Json.JsonConvert.SerializeObject(dict);

但我很确定我做错了。

我怎样才能做到这一点?

【问题讨论】:

  • 我的输出与我需要的相差甚远

标签: c# json linq json.net


【解决方案1】:

为什么不简单地使用ArrayList?您的 JSON 看起来像一个对象数组,您可以像这样投影 anonymous 类型:-

var result = res.GroupBy(m => m.id)
                .Select(x => new 
                           {
                               id = x.Key,
                               data = x.ToArray()
                           }).ToArray();

【讨论】:

  • 这几乎正是我所需要的!唯一的事情是......我怎么不能在“数据”中复制“id”值?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-25
  • 2023-03-15
  • 1970-01-01
  • 2017-11-12
相关资源
最近更新 更多