c#如何把某个长数组的一部分复制到另一个短数组里面

byte[] shortAry=new byte[4];
byte[] longAry=new byte[20];
如何把longAry[5,9(不含)]这4个字节复制到shortAry里面?
不要用循环
我说的“不要用循环”是指不要手动用for语句去循环,而是用系统自带的方法

用Array.Copy方法将数组或者数组的一部分复制到另个数组。Array.Copy是静态方法,有多个重载版本。其中常用的是:

public static void Copy(
    Array sourceArray,
    int sourceIndex,
    Array destinationArray,
    int destinationIndex,
    int length);

各个参数含义如下

    sourceArray —— 源数组

    sourceIndex —— 表示 sourceArray 中复制开始处的索引

    destinationArray —— 目标数组,它接收数据

    destinationIndex —— 表示 destinationArray 中存储开始处的索引

    length —— 要复制的元素数目。

用法举例如下:

(1)复制数组的一部分到另一个数组

int[] src = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
int[] dest = new int[4];
// 将数组 src 中元素 2,3,4,5 复制到 dest  
Array.Copy(src, 1, dest, 0, 4);

(2)复制整个数组

int[] src = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
int[] dest = new int[src.Length];
// 将数组 src 所有元素复制到 dest  
Array.Copy(src, 0, dest, 0, src.Length);

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-10-27
不可能不用循环。

即使是 Array.CopyTo() 方法,本质也是循环,无非是你自己写循环还是 CLR 封装好了你调用。

况且 CopyTo 在目标数组长度小于原数组指定长度依旧会抛出异常。追问

我就是指有没有已经封装好的复制方法。
CopyTo只能把短的复制到长的里面,不能把”长的“的【一部分】复制到短的里面

本回答被提问者和网友采纳

c#如何把某个长数组的一部分复制到另一个短数组里面
(1)复制数组的一部分到另一个数组 int[] src = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };int[] dest = new int[4];\/\/ 将数组 src 中元素 2,3,4,5 复制到 dest Array.Copy(src, 1, dest, 0, 4);(2)复制整个数组 int[] src = { 1, ...

C#数组中,把相同的元素提取出来,放入另一个数组中
\/\/如果是int类型只要把string改为int就行了。\/\/使用循环将值付给数组

C#,怎样把一个数组里面的值放到另一数组里面
int[] a = arr ;它也是按顺序的 ..

C#,怎样把一个数组里面的值放到另一数组里面
把图片放在debug文件里,再用相对路径application.startup+"\\\\"+imagename(图片名字,要加上后缀名)存储到数组里就可以了,要使用图片的话用image.from(application.startup+"\\\\"+imagename)

c#有两个数组,想把这个两组中相同的元素放在另一个数组中
使用linq,可以一步到位 string[] str1={"1","2","4","9","6","23","12","28","10","5","15","30","19","22"};string[] str2={"1","4","2","6","30","26","33","19","27","42","44"};\/\/这是交集 var res = str1.Intersect(str2);\/\/这是差集 ...

c# 怎么把数组中的一部分元素提取出来后重新赋给原来的额数组?
OK,算法如下:static void Main(){ int[] a = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; Resize<int>(ref a, x => x < 7);}static void Resize<T>(ref T[] source, Predicate<T> predicate){ if (source == null || predicate == null) throw ...

c#如何将字符串数组赋值给另一字符串数组
在C#中,你可以使用`Array.Copy`方法或者直接使用赋值操作符`=`来将一个字符串数组赋值给另一个字符串数组。使用`Array.Copy`方法的示例代码如下:```csharp string[] sourceArray = { "Hello", "World", "!" };string[] destinationArray = new string[sourceArray.Length];Array.Copy(source...

为什么在C#中数组之间不可以拷贝啊!
字符串拷贝函数strcpy格式:strcpy (字符数组名1,字符数组名2) 的功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“”也一同拷贝。字符数名2, 也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。本函数要求字符数组1应有足够的长度,否则不能全部装入所拷贝的字符串。

c# 数组问题,如何将一个数组中的元素随机分配到N个数组中
说思路~把数组a元素存进list 创建循环 然后用random.next(list.count)来生成索引标签 然后把对应该索引的元素存进另外的数组,之后用list.removeAt方法移除该元素。直至list中没有元素即完成

c#如何把一组数组赋值给另一组
int[] a = { 1, 2, 3, 4 }; int[] b; b = a; \/\/赋值 for( int i=0; i

相似回答