2017-02-22 63 views
-1

Допустим, у меня есть эти 3 разных массива;Объединяйте массивы в соответствии с их значениями

int[] arr1= new int[2] {7,9}; 

int[] arr2= new int[2] {1,5}; 

int[] arr3= new int[2] {5,7}; 

Их порядок будет всегда случаен поэтому в моем случае следующее это то же самое, следовательно, я просто не могу сделать что-то вроде «arr2 + arr3 + arr1». Мне нужно проверить второе значение и найти его в первом значении другого.

int[] arr1= new int[2] {5,7}; 

int[] arr2= new int[2] {1,5}; 

int[] arr3= new int[2] {7,9}; 

Как слить их так, чтобы у меня получился массив;

{1,5,5,7,7,9}

И для следующего шага я должен проверить следующее условие

int[] arr1= new int[2] {5,9}; 

int[] arr2= new int[2] {1,5}; 

int[] arr3= new int[2] {7,9}; 

Так как эта привычка создают предполагаемого результирующего массива, мне нужно бросить предупреждение. Я буду использовать C# для своего проекта, но вы можете ответить на C или java. Заранее спасибо.

+2

'int [] final = arr1.Concat (arr2) .Concat (arr3) .OrderBy (v => v) .ToArray(); ' – Gusman

+0

@RayFischer Я не мог придумать какую-либо идею. Я попытался написать некоторые работы вокруг на бумаге, но я закончил с большим количеством циклов, так что не пытался. – inanc

+0

@ Гусман спасибо за ответ, я попробую завтра утром и дам вам знать, если это сработает. – inanc

ответ

1

Расширение на комментарий Gusman «s:

int[] final = arr1.Concat(arr2).Concat(arr3).OrderBy(v => v).ToArray(); 

Использование .Concat(arr2) метода на arr1 соединяет два массива и возвращает новый массив, который содержит комбинацию их значений.

Теперь этот новый массив объединен с arr3, снова возвращает новый массив, который имеет все значения предыдущих массивов.

Новый массив теперь передается в метод расширения .OrderBy() ... который использует выражение лямбда (вы можете исследовать больше на лямбда-выражениях). Это конкретное лямбда-выражение принимает каждый элемент (левую часть =>) в массиве и сортирует его как «сам» (правая сторона =>)

+1

Я не думаю, что это просто упорядочение по элементам. Я думаю, что он соединяет массивы со вторым числом одного массива, являющимся первым номером в следующем. Вот почему второй набор заданных массивов выдает предупреждение вместо числа, упорядоченного по порядку. – Chris

+0

Ага, ты возвращаешься к своему второму шагу, извини, полностью забыл об этом, отвечая ... Теперь, когда я думаю об этом, я совсем не уверен в этом вопросе ... Неужели я удалю ответ? –

+0

Да, вопрос очень неясен. Я не уверен, что моя интерпретация верна, но я думаю, что это так. :) – Chris