在单个LINQ查询中将ID放在IEnumerable <int>中

时间:2017-03-10 16:01:34

标签: c# linq linq-to-sql

我有这种格式的数据集:

ID   Make        Model
==   =========   =========
1    Ford        Fusion
2    Ford        Fusion
3    Chevy       Malibu

我希望结果是:

Make      Model      IDs
========  =========  ===
Ford      Fusion     IEnumerable<int> {1,2}
Chevy     Malibu     IEnumerable<int> {3}

我正在网格中实现多行编辑,因此我需要保存每行的ID,同时显示要编辑的不同属性。编辑完成后,我将更新ID。

我想知道是否有办法用单个LINQ查询整理这些ID。目前我已经成功但有两个问题。

2 个答案:

答案 0 :(得分:3)

一个简单的小组应该工作:

var query=from c in cars
          group c.Id by new {c.Make,c.Model} into g
          select new {g.Key.Make, g.Key.Model, Ids=g.ToList() };

答案 1 :(得分:3)

您可以尝试这样的事情:

var results = context.Cars
                     .GroupBy(c => new { c.Make, c.Model })
                     .Select(g => new
                     {
                         Make = g.Key.Make,
                         Model = g.Key.Model,
                         IDs = g.Select(c => c.ID)
                     });