2017-02-22 56 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}

而用于下一步骤i需要检查以下条件

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

@Gusman谢谢你的回答,我会在明天早上试试,并告诉你是否可行。 – inanc

回答

1

扩展在Gusman点评:

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

使用.Concat(arr2)方法上arr1连接两个阵列,并返回具有它们的值的组合的新的数组。

现在这个新的数组与arr3结合,再次返回一个新的数组,其中包含以前数组的所有值。

新数组现在传递给.OrderBy()扩展方法...它使用lambda表达式(您可以在lambda表达式上进行更多调查)。这个具体的lambda表达式将数组中的每个元素(=>的每一个元素)排序,并将其排序为“本身”(右侧=>)

+1

我不认为它只是按元素排序。我认为它是以第二个数组作为第一个数组加入数组。这就是为什么给出的第二组数组抛出警告而不是按顺序排序的数字。 – Chris

+0

阿哈你正在接受他的第二步,对不起,在回答时完全忘记了那一个......现在我想起了它,我根本不确定这个问题......我应该删除答案吗? –

+0

是的,这个问题很不明确。我不确定我的解释是否正确,但我认为它是。 :) – Chris