C# 如何附加两个可为空的数组

C# 如何附加两个可为空的数组,c#,console-application,C#,Console Application,我在添加两个可为空的数组时遇到了麻烦 情况如下 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 s

我在添加两个可为空的数组时遇到了麻烦

情况如下

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'
有人解释我做错了什么吗?

简单的方法:

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;                
    }

}
intstoreindex//这里我存储数组1的空索引号。
for(int i=0;i
简单方法:

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;                
    }

}
intstoreindex//这里我存储数组1的空索引号。
for(int i=0;i
如果要加入这两个阵列,只需使用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 ();

如果要加入这两个阵列,只需使用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 ();

您从未初始化过
StoreIndex
.array1.Length>array2.Length,因此出现了例外,您到底想实现什么?连接整个数组或仅连接具有值的索引?好的,我得到了array1.Length>array2.Length,因此出现了一个例外——Giorgos Betsos,但是我的代码中是否有任何关于实现我的任务的更正想法。您是否试图以更优化的方式模拟此LINQ查询
var result=array1.Concat(array2).Where(i=>i.HasValue.ToArray()?例如,如果索引4包含一个
null
,但索引5包含一个值,该怎么办?它应该复制空值还是跳过空值?您从未初始化过
StoreIndex
.array1.Length>array2.Length,因此出现了例外情况。您到底想实现什么?连接整个数组或仅连接具有值的索引?好的,我得到了array1.Length>array2.Length,因此出现了一个例外——Giorgos Betsos,但是我的代码中是否有任何关于实现我的任务的更正想法。您是否试图以更优化的方式模拟此LINQ查询
var result=array1.Concat(array2).Where(i=>i.HasValue.ToArray()?例如,如果索引4包含一个
null
,但索引5包含一个值,该怎么办?它应该复制空值还是跳过空值?如果array2中的非空值太多,则会出现相同的索引超出范围异常。如果array2中的非空值太多,则会出现相同的索引超出范围异常。