将 ID 放在<int>单个 LINQ 查询中的 IE可枚举中



我有一个格式的数据集:

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。完成编辑后,我将拥有IDS更新。

我想知道是否有一种方法可以将这些ID与单个LINQ查询进行整理。目前,我已经成功了,但是有两个查询。

一个简单的组应起作用:

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() };

您可以尝试这样的事情:

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)
                     });

最新更新