[.NET/C#].NET/C#应用程序开发中如何将两个数组合并成一个数组?

.NET 作者: Rector 14阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

如题,在.NET/C# 应用程序开发中如何将两个数组合并成一个数组?

方案一

如果在.NET 2.0或者以下版本中,由于没有LINQ,所以只能自定义实现将两个数组合并成一个数组的方法。
如果数组是可以修改的,那可以在复制数组数据之前更改其中一个数组的长度,如下:

T[] array1 = getOneArray();
T[] array2 = getAnotherArray();
int array1OriginalLength = array1.Length;
Array.Resize<T>(ref array1, array1OriginalLength + array2.Length);
Array.Copy(array2, 0, array1, array1OriginalLength, array2.Length);

如果数组是不可修改的,则可以直接创建一个新的数组,如下:

T[] array1 = getOneArray();
T[] array2 = getAnotherArray();
T[] newArray = new T[array1.Length + array2.Length];
Array.Copy(array1, newArray, array1.Length);
Array.Copy(array2, 0, newArray, array1.Length, array2.Length);

方案二

如果是.NET 3.0及以上版本,我们可以使用LINQConcat方法把两个数组连接成一个数组,如下:

int[] front = { 1, 2, 3, 4 };
int[] back = { 5, 6, 7, 8 };
int[] combined = front.Concat(back).ToArray();

注:Concat方法不会去掉重复的数据

方案三

或者如果是.NET 3.0及以上版本,我们还可以使用LINQUnion方法把两个数组连接成一个数组,如下:

var arr1 = new[] { 1, 2, 3, 4, 5 };
var arr2 = new[] { 6, 7, 8, 9, 0 };
var arr = arr1.Union(arr2).ToArray();

注:Union方法会去掉重复的数据

方案四

如果是.NET 3.0及以上版本,还可以使用LINQAddRange方法,如下:

var array = new string[] { "test" }.ToList();
var array1 = new string[] { "test" }.ToList();
array.AddRange(array1);
var result = array.ToArray();

阅读了该文章的人还浏览了...

本文永久链接码友网 » [.NET/C#].NET/C#应用程序开发中如何将两个数组合并成一个数组?

发布于: 2018-11-01 08:12:49
分享扩散: