2013-04-15 3 views
11

У меня есть два простых массива, и я хотел бы объединить с помощью присоединиться LINQ:Объединить 2 массива с помощью LINQ

int[] num1 = new int[] { 1, 55, 89, 43, 67, -3 }; 
int[] num2 = new int[] { 11, 35, 79, 23, 7, -10 }; 

var result = from n1 in num1 
      from n2 in num2 
      select result; 
+0

вам необходимо объединить их и перебирать результат, или они должны быть объединены в другой массив ли? –

+0

Предполагаемый дубликат задает другой вопрос: он говорит о слиянии массива массивов в один список (т. Е. 'SelectMany'), в то время как этот вопрос просит объединить два массива (т. Е.' Concat'). Назначение вопроса для повторного открытия. – dasblinkenlight

ответ

27

Вы можете сделать это с помощью Concat и ToArray, как это:

var res = num1.Concat(num2).ToArray(); 

Этот поставит все элементы num2 после элементов num1, производя res, который выглядит как

int[] { 1, 55, 89, 43, 67, -3, 11, 35, 79, 23, 7, -10 }; 

EDIT: (в ответ на комментарий: «как я могу также сортировать либо allNumbers и разрешения?»)

После того, как ваши два массива объединяются, вы можете использовать OrderBy для сортировки результатов, как это:

var res = num1.Concat(num2).OrderBy(v=>v).ToArray(); 
+0

нет функции в качестве конкатенации – Satpal

+2

удален downvote – Satpal

+0

Спасибо за ответы, но как я могу сортировать либо allNumbers и res? – 2013-04-15 10:10:37

3
var result = num1.Concat(num2); 

Не выделяет никакой памяти. Это достаточно для ваших нужд?

0

попробовать, как показано ниже ... это поможет вам ..

int[] num1 = new int[] { 1, 55, 89, 43, 67, -3 }; 
int[] num2 = new int[] { 11, 35, 79, 23, 7, -10 }; 
var result = num1.Union(num2).ToArray(); 
+0

В чем разница между concat и Union? Разве один, а другой нет? – Tobias

+1

@Tobias: Да, Союз отличается. Для двух последовательностей {1, 2, 3} & {2, 3, 4} Union дает {1, 2, 3, 4}, concat дает {1, 2, 3, 2, 3, 4} –

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