2013-02-18 3 views
0

У меня есть две таблицы в проекте DB First MVC3 со ссылкой «много-ко-многим» между таблицами.Преобразовать список <int[]> в объект типа ICollection <int, int[]>

Эти таблицы объединяются для создания редактируемой матрицы с обратной записью через вызов 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]}

я застрял, любая помощь или даже точка в правильном направлении будет очень оценен.

Большое спасибо.

+0

Я знаю, что вы предоставили AssetId и CourseId для наложения y, но я не понимаю, как {AssetId: 1, CourseId: 2} вписывается в Список . Возможно, вы имеете в виду список {[2,3,4], [3,4]}? –

+0

Майк, вот что я имею в виду. Я думаю, что я это сделал, но он по-прежнему не спасет, поскольку он вызывает какое-то неопределенное исключение DBEntityUpdate. – user2083536

ответ

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(); 
+0

Я думаю, что я это сделал, но используя различные. var courseIds = Data.Where (o => o [0] == item [0]). Distinct(); а затем цикл foreach. – user2083536

+0

Благодарим вас за проверку моего андерсера. Я опубликовал ваше решение. –

Смежные вопросы