创建整数数组 [duplicate] 的副本

Create a copy of integer array [duplicate]

提问人:william007 提问时间:2/2/2013 最后编辑:Communitywilliam007 更新时间:5/18/2020 访问量:22585

问:

这个问题在这里已经有答案了:
10年前关闭。

可能的重复C#:
复制数组的任何更快方法吗?

我有一个整数数组

int[] a;

我想将它的副本(不是参考)分配给

int[] b;

更简单的方法是什么?

c#

评论


答:

31赞 Felipe Oriani 2/2/2013 #1

您可以使用本机方法,尝试如下所示:Clone

int[] b = (int[])a.Clone();

其他选项包括 linq:

using System.Linq;

// code ...
int[] b = a.ToArray();

并复制数组

int[] b = new int[a.Length];
a.CopyTo(b, 0);
3赞 oleksii 2/2/2013 #2

可以使用 Array.CopyTo 方法。

int[] a = new[] { 1, 2, 3 };
int[] b = new int[3];
a.CopyTo(b,0);
5赞 I4V 2/2/2013 #3

我认为最简单的方法是

int[] b = a.ToArray();

评论

0赞 Gerard 8/31/2017
这需要先工作。using System.Linq;
0赞 Marie 7/12/2018
超级晚了,但我很确定 Linqs ToArray 会检查底层类型,如果它是一个数组,则立即返回。
2赞 Timo 8/29/2019
@Marie 它肯定不能立即返回,因为 LINQ 方法喜欢并返回一个新集合。在修改生成的集合时,这一点非常重要:原始集合不会被修改。LINQ 确实优化了实现类型的实现,因为它们的属性允许它立即创建正确大小的数组。ToListToArrayToArrayICollection<T>Count