2013-10-03 76 views
-4

我有命名为items两个String数组和items1 items阵列由1296个元素 items1阵列由 复制items1items 8个元件。我想这样的事情,但它不工作,让看看这个如何使用C#将字符串数组复制到另一个字符串数组?

items1.CopyTo(items, items1.Length -1); 
Array.Copy(items1, items, items1.Length-1); 
+0

什么“不起作用”呢? – CodingIntrigue

+2

你想复制这些元素的位置?你希望'item'从'items1'有* first * 8个元素,或者它应该是* last * 8个元素?或者你想'物品'只包含8个元素? –

+0

哪个版本的.net框架 – TalentTuner

回答

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(); 

顺便说一句使用有意义的名称,itemsitems1不使任何意义

1

使用LINQ的Concat的方法

items.Concat(items1) 

这将连接两个数组在一起,并在项目的末尾添加items1,我希望你想要的项目只有这样的数组。

+0

Concat不在那里 – Anjali

+0

关心包含System.Linq命名空间 – TalentTuner

+0

我正在使用Linq命名空间。我的框架是.net3.5 – Anjali

0

它应该适合你:

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); 
0

这是复制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}

0

这应该做到这一点:

Array.Resize(ref items, items.Length + items1.Length); 
Array.Copy(items1, 0, items, items.Length-items1.Length, items1.Length); 

它调整目标数组的大小,items,足够大,两个阵列。 然后它将源数组items1复制到目标数组末尾新添加的空间。

相关问题