2016-06-27 10 views
0

異なるサイズの配列で配列を塗りつぶす効率的で良い方法を探しています。私は次のような解決策を考えています:異なるサイズの配列で配列を塗りつぶす

private bool arrayMaking(int[] array1, int[] array2, int value, out int[] arrays) 
{ 
    arrays = {array1, array2, value}; 
    return true; 
} 

ループが必要ですか?

+0

期待される結果は何ですか?入出力の例が役に立ちました – fubo

+0

ああ申し訳ありませんが、私の元の方法ははるかに複雑で、私は本質的な部分に分解しようとしました。戻り値 'bool'は配列の埋め込み処理には関係ありませんが、メソッドも無効になります。 私の方法では、 'array1'と' array2'の値が大丈夫かどうかチェックします。もしそうなら、私は表示された解を返します。そうでなければ、array2の値を変更しようとします。そして、適合後に '{array1、array2、value}'で 'arrays'を埋めます。適応が不可能な場合は、私はfalseを返します。 ポストされたコードは、Visual Studioで「無効な式」{ – shup

+0

[異なるサイズの配列の配列]の重複が考えられます(http://stackoverflow.com/questions/22745750/array-of-arrays) -with-different-sizes) – Abdul

答えて

0

それはあなたが、単一のアレイに1つまたは複数のアレイをマージしたいと私に聞こえることができます。 Concat(または重複を排除するためにUnion)を使用してこれを行うことができます。

private bool arrayMaking(int[] array1, int[] array2, int value, out int[] arrays) 
{ 
    arrays = array1.Concat(array2).Concat(new int[] {value}).ToArray(); 
    return true; 
} 
+0

ありがとう、それはまさに私が探していたものでした!よく働く。 – shup

1

あなたは他の二つの配列やintから配列を初期化したい場合は、あなたが使用できます。

private bool ArrayMaking(int[] array1, int[] array2, int value, out int[] arrays) 
{ 
    int size = array1.Length + array2.Length + 1; 
    arrays = new int[size]; 
    for (int i = 0; i < array1.Length; i++) 
     arrays[i] = array1[i]; 
    for (int i = 0; i < array2.Length; i++) 
     arrays[i + array1.Length] = array2[i]; 
    arrays[arrays.Length - 1] = value; 
    return true; 
} 

効率の低いが、LINQを使用して、より読み:

private bool ArrayMaking(int[] array1, int[] array2, int value, out int[] arrays) 
{ 
    arrays = array1.Concat(array2).Concat(new[] {value}).ToArray(); 
    return true; 
} 
0

あなたはあなたの問題を解決するためにLINQを使うことができます:

// Make sure to add these first: 
using System.Linq; 
using System.Collections.Generic; 

private bool arrayMaking(int[] array1, int[] array2, int value, out int[] arrays) 
{ 
    List<int> array = new List<int>(); 
    array.AddRange(array1); 
    array.AddRange(array2); 
    array.Add(value); 
    arrays = array.ToArray(); 
    return true; 
} 
関連する問題