我正在寻找一种有效且好的方法来填充具有不同大小的数组的数组。我在想一个像以下的解决方案:
private bool arrayMaking(int[] array1, int[] array2, int value, out int[] arrays)
{
arrays = {array1, array2, value};
return true;
}
是否有可能的解决方案或我是否需要循环?
答案 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吗?
答案 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;
}