按对象列表分组为int字典,对象列表

时间:2019-02-21 19:03:28

标签: c# linq

我有一个存储过程,返回N行。

为了简单起见,在我的后端是要映射的POCO:

public class Car
{
  public int Id { get; set; }
  public string Brand { get; set; }
  public int OwnerId{ get; set;}
}

同时我还具有以下POCO:

public class Owner
{
  public int Id { get; set; }
  public string FirstName { get; set; }
}

现在,我要实现的是具有列表的以下内容:

List<Car> lstCar = db.sp.AllMyCars()
    .Select(car => new Car()
     {
        Id = car.Id,
        Brand = car.Brand,
        OwnerId = car.OwnerId
     }).ToList();

现在我想保存在Dictionary<int,List<Owner>>类型的字典中

编辑:

为澄清起见,您已经拥有List<Car>的汽车lstCar列表,现在要按Id分组,并有一个所有者列表,我们将需要创建一个所有者列表以及汽车列表中的每个元素,我们都需要将这些列表添加并填写为汽车(您只需填写ID,就可以了,没关系)。

示例:

enter image description here

您在字典中的int将为“数字”,并且您将填写在列表中的唯一字段是OwnerId。

因此,您需要按编号对所有者对象列表进行分组,在这种情况下,例如,编号44将返回5个其ID为2、3、4、5和6的所有者对象。

1 个答案:

答案 0 :(得分:0)

根据{{​​1}}的定义

,其中TKey表示键,TValue表示值对象。因此,Dictionary<TKey, TValue>必须是Dictionary<List<Owner>, int> grouped

另一方面,我相信您正在寻找Dictionary<int, List<Owner>> grouped

Dictionary<int, Owner> grouped