将List <int []>转换为ICollection <int,int [] =“”> </int,> </int []>类型的对象

时间:2013-02-18 14:27:28

标签: c# asp.net-mvc linq many-to-many

我在DB First MVC3项目中有两个表,表之间有多对多链接。

这些表结合起来产生一个可编辑的矩阵,通过Ajax调用回传一个简单的数组。

由于多对多关系,我现在需要改变数组:

List<int[]>

使用以下值: {AssetId:1,CourseId:2} {AssetId:1,CourseId:3} {AssetId:1,CourseId:4} {AssetId:2,CourseId:3} {AssetId:2,CourseId:4}

致:

ICollection<int, int[]>

使用这样的值:

{AssetId:1,CourseId [2,3,4]} {AssetId:2,CourseId [3,4]}

我被困住,任何帮助甚至是正确方向上的一点都会非常感激。

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用GroupBy方法按照数组的索引对其进行分组,样本:

var groupedResult = list.GroupBy(x => x[0]);

使用foreach语句循环结果:

foreach(var item in groupedResult)
{
  var assetId = item.Key ;
  foreach(int courseId in item)
  {
     // courses Id here
  }
}

你建议的解决方案:

var courseIds = list.Where(o => o[0] == item[0]).Distinct();