2015-06-30 2 views
-1

У меня есть следующие переменные:Как объединить три одномерный массив в одном массиве

IEnumerable<Comment>[][] moderatedComments; 
/** 
* First dimension [] = The repository from where I fetched the comments (Could be more than one repository) 
* Second dimension [][] = The moderation operation (There can only be two operations, so this dimension is always of size 2) 
* Third dimension IEnumerable<Comment> = The moderated comments for that dimension 
*/ 

Пример:

Comment comment = moderatedComments[1][0].First(); 
// Repository 1 
// Moderation operation 0 
// First moderated comment for that repository and operation 

Я хочу, чтобы объединить все три измерения в один (IEnumerable<Comment>), содержащий все модерируемые комментарии, независимо от операции репозитория или модерации.

Как это можно сделать с помощью LINQ?

+3

Это не многомерный массив, это просто массив массивов ... – leppie

+0

@leppie извини, я не знаю точно слово для этих типов массивов, я с удовольствием соглашусь с заголовком edit –

+6

Не могли бы вы рассказать о том, почему вы используете вложенные массивы для представления графа объектов? Вам, вероятно, лучше будет предлагать добавление свойств вашему классу 'Comment'. –

ответ

4

ли это так, пожалуйста:

IEnumerable<Comment>[][] moderatedComments; 
var merged = moderatedComments.SelectMany(x => x).SelectMany(x => x); 
// merged is IEnumerable<Comment> 
+0

Этот последний комментарий очень полезен, но замена «var» на точный тип - гораздо более сильное утверждение. В ответе не обязательно следовать инструкциям по производственному кодексу. –

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