C#中定义好了数组a,有什么方法可以直接截取数组a的几个元素来组成新数组(不能直接输入数组初值)

如,int[] a=new int[5]{1,2,3,4,5}
我想取a数组的前3个元素来组成新数组b,但是不能直接赋值写成 int[] b={1,2,3}
有没有其他方法?

  static void Main(string[] args){
            int[] a = new int[5] { 1, 2, 3, 4, 5 };
            int[] b = new int[3];
            // 下面这句话的意思是:从数组a下标为2的元素开始克隆元素到目标数组b下标为0的作为接受克隆过来的值的起始存储的位置,总共在a数组截取3个元素
             Array.ConstrainedCopy(a, 2, b, 0, 3);
  }

追问

Array.ConstrainedCopy(a, 2, b, 0, 3);
这句解释一下。就是把a的哪几个元素复制到 b中哪几号里?

追答Array.ConstrainedCopy(a, 2, b, 0, 3);  // 从数组a下标为2开始截取元素到数组b的下标为0开始存储,总共截取3个。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-17
最简单的方法是使用Take。
data.Skip(n).Take(m).ToArray();
上面直接写a.Take(3).ToArray(); 就可以的待结果。
第2个回答  2014-07-31
int[] a = new int[5] { 1, 2, 3, 4, 5 };
int[] b = new int[3];
Array.Copy(a, 0, b, 0, 3);
第3个回答  2014-07-31
Array.Size(ref a,3);:将数组的大小更改为指定的新大小。
Array.ConstrainedCopy(a,0,b,0,3);:从指定的源索引开始,复制 Array 中的一系列元素,将它们粘贴到另一 Array 中(从指定的目标索引开始),
public static void ConstrainedCopy (
Array sourceArray,
int sourceIndex,
Array destinationArray,
int destinationIndex,
int length
)

参数
sourceArray
Array,它包含要复制的数据。
sourceIndex
一个 32 位整数,它表示 sourceArray 中复制开始处的索引。
destinationArray
Array,它接收数据。
destinationIndex
一个 32 位整数,它表示 destinationArray 中存储开始处的索引。
length
一个 32 位整数,它表示要复制的元素数目。
第4个回答  2014-07-31
int[] a = new int[5] { 1, 2, 3, 4, 5 };
            int[] b = new int[3];
            for (int i = 0; i < b.Length; i++)
            {
                b[i] = a[i];
            }

相似回答