如何附加两个可为空的数组
本文关键字:数组 两个 何附加 | 更新日期: 2023-09-27 18:35:44
我在附加两个可为空的数组时感到不安。
案例如下。
int?[] array1 = new int?[1000];//having some values till index 500
int?[] array2 = new int?[100];//having some values till index 50
/*so, the total logical size of appended array should be 1000 but physical size of an array should 550 */
//I tried this...
int StoreIndex;//here i store null index number of array1.
for (int i = 0; array1.Length; i++)
{
array1[StoreIndex + 1] = array2[i];
if (array2[i] == null)
{
break;
}
}
//but this coding give me unhandled exception of type'System.IndexOutOfRangeException'
有人解释我在这里做错了什么吗?
如果要连接这两个数组,只需使用 LINQ:
int?[] array1 = new int?[1000];
int?[] array2 = new int?[100];
int?[] newArray = array1.Concat (array2).ToArray();
如果您想从两者中获取所有不null
值,请尝试以下操作:
int?[] array1 = new int?[1000];
int?[] array2 = new int?[100];
int[] newArray = array1.Concat (array2).Where (x => x.HasValue).Select(x => x.Value).ToArray ();
简单的方法:
array2.CopyTo(array1, StoreIndex);
其他方式:
将array1.Length
更改为array2.Length
int StoreIndex;//here i store null index number of array1.
for (int i = 0; i< array2.Length; i++)
{
array1[StoreIndex + i] = array2[i];
if (array2[i] == null)
{
break;
}
}