使用不同大小的数组填充数组

时间:2016-06-27 09:27:54

标签: c# arrays initialization fill

我正在寻找一种有效且好的方法来填充具有不同大小的数组的数组。我在想一个像以下的解决方案:

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

是否有可能的解决方案或我是否需要循环?

4 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

您在寻找Jagged Array吗?

您还可以create an Array of Arrays

答案 2 :(得分:0)

听起来你想要将一个或多个数组合并为单个数组。您可以使用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;
}

答案 3 :(得分: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;
}