我有命名为items
两个String数组和items1
items
阵列由1296个元素 items1
阵列由 复制items1
成items
8个元件。我想这样的事情,但它不工作,让看看这个如何使用C#将字符串数组复制到另一个字符串数组?
items1.CopyTo(items, items1.Length -1);
Array.Copy(items1, items, items1.Length-1);
我有命名为items
两个String数组和items1
items
阵列由1296个元素 items1
阵列由 复制items1
成items
8个元件。我想这样的事情,但它不工作,让看看这个如何使用C#将字符串数组复制到另一个字符串数组?
items1.CopyTo(items, items1.Length -1);
Array.Copy(items1, items, items1.Length-1);
这应该工作
Array.Resize(ref items, items.Length + items1.Length);
Array.Copy(items1, 0, items, items.Length - items1.Length, items1.Length);
如果您希望元素附加,而不是覆盖尝试以下
items = items.Concat(items1).ToArray();
顺便说一句使用有意义的名称,items
和items1
不使任何意义
使用LINQ的Concat的方法
items.Concat(items1)
这将连接两个数组在一起,并在项目的末尾添加items1,我希望你想要的项目只有这样的数组。
它应该适合你:
var items = new string[]{"A"};
var items1 = new string[] { "B" };
var res = new List<string>();
res.AddRange(items);
res.AddRange(items1);
items = res.ToArray();
你的情况的主要问题是在运行时增加items数组的长度。如果您的物品阵列中有足够的长度,则可以使用:
Array.Copy(items1, 0, items, items.Length, items1.Length);
这是复制string Array
的一个简单示例。
string[] SourceArray= { "A", "B", "C", "D", "E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S" };
string[] DestArray= new string[8];
Array.Copy(SourceArray, 11, DestArray, 0, 8);
SourceArray
=输入阵列
11
=起始索引(从其中复制应在源阵列启动)
DestArray
=是您的阵列,其中所述元件具有要被复制
0
=目的地阵列的起始索引
8
=到阵列中的被复制elemets数
输出:
{L,M,N,O,P,Q,R,S}
这应该做到这一点:
Array.Resize(ref items, items.Length + items1.Length);
Array.Copy(items1, 0, items, items.Length-items1.Length, items1.Length);
它调整目标数组的大小,items
,足够大,两个阵列。 然后它将源数组items1
复制到目标数组末尾新添加的空间。
什么“不起作用”呢? – CodingIntrigue
你想复制这些元素的位置?你希望'item'从'items1'有* first * 8个元素,或者它应该是* last * 8个元素?或者你想'物品'只包含8个元素? –
哪个版本的.net框架 – TalentTuner