【发布时间】:2015-01-23 12:22:55
【问题描述】:
我有 3 种类型:Parameter、Facility 和 Location。 Parameter 有一个Facility,Facility 与Location 是多对多相关的。所以,如果我们进行连接,我们可以得到这样一个表:
ParamId FacilityId LocationId
1 1 1
1 1 2
2 2 1
2 2 3
现在我想按位置对参数进行分组,以便获得字典>,如下所示:
LocationId Parameters
1 1,2
2 1
3 2
我不能直接使用 GroupBy,因为我不知道如何编写 keySelector。我也尝试过这样的 SelectMany:
parametersList.SelectMany(t=>t.Facility.Locations).GroupBy(t =>t)
.ToDictionary(t=>t.Key, t=>t.Select(val=>val))
但它不能形成我的字典..
更新: 这是我的设施(简化)的样子:
public class Facility
{
public int Id { get; set; }
public ICollection<Location> Locations { get; set; }
}
这里是位置:
public class Location
{
public int Id { get; set; }
public ICollection<Facility> Facilities { get; set; }
}
如有任何帮助,我将不胜感激!
【问题讨论】:
-
你如何定义类
Facility和Location? -
@CuongLe 更新了我的问题