首页 > C# > int[] z = x.Concat(y).ToArray();有没有更简单或更有效的方法?

int[] z = x.Concat(y).ToArray();有没有更简单或更有效的方法?

上一篇 下一篇

int[] x = new int [] { 1, 2, 3};
int[] y = new int [] { 4, 5 };

int[] z = // your answer here...

Debug.Assert(z.SequenceEqual(new int[] { 1, 2, 3, 4, 5 }));

现在我使用

int[] z = x.Concat(y).ToArray();

有没有更简单或更有效的方法?


小心方法。C# 中的数组串联一文解释说:Concat

var z = x.Concat(y).ToArray();

对于大型阵列将效率低下。这意味着该方法仅适用于中等大小的数组(最多 10000 个元素)。Concat

分割线

网友回答:

var z = new int[x.Length + y.Length];
x.CopyTo(z, 0);
y.CopyTo(z, x.Length);

分割线

网友回答:

试试这个:

List<int> list = new List<int>();
list.AddRange(x);
list.AddRange(y);
int[] z = list.ToArray();

分割线

网友回答:

您可以编写一个扩展方法:

public static T[] Concat<T>(this T[] x, T[] y)
{
    if (x == null) throw new ArgumentNullException("x");
    if (y == null) throw new ArgumentNullException("y");
    int oldLen = x.Length;
    Array.Resize<T>(ref x, x.Length + y.Length);
    Array.Copy(y, 0, x, oldLen, y.Length);
    return x;
}

然后:

int[] x = {1,2,3}, y = {4,5};
int[] z = x.Concat(y); // {1,2,3,4,5}

模板简介:该模板名称为【int[] z = x.Concat(y).ToArray();有没有更简单或更有效的方法?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 169次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 04-14
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信素材 自适应 微信文章 微信图片 响应式 微信模板 单页式简历模板 微信公众平台 企业网站 html5
您可能会喜欢的其他模板