基于参数将字符串数组转换为另一个字符串数组

时间:2014-01-17 12:57:04

标签: c# arrays string

我有另一个问题。

如何根据参数将字符串数组转换为另一个字符串数组?

string[] x={ "A", "B", "C", "D", "E", "F", "G" };
string[] y=new string[number];

for(int I=0;i<number;i++)
{
y=x[i];
}

上述实现显示错误。

如果参数编号为3,则数组y应为A,B,C,D。

基本上在参数的基础上,我想从父数组

生成另一个数组

我知道这个问题不是太高科技但我无法绕过它。

非常感谢帮助。

此致

阿努拉格

4 个答案:

答案 0 :(得分:4)

Array.Copy有一个名为Array.Copy Method (Array, Array, Int32)的重载

  

从第一个元素开始从Array复制一系列元素   并将它们粘贴到从第一个元素开始的另一个数组中。

Array.Copy(x, y, number + 1);

完整的例子;

string[] x = { "A", "B", "C", "D", "E", "F", "G" };
string[] y = new string[4];
Array.Copy(x, y, 4);
foreach (var item in y)
{
    Console.WriteLine(item);
}

输出将是;

A
B
C
D

这里有 demonstration

答案 1 :(得分:2)

没有必要循环。您可以使用LINQ

执行此操作
string[] y = x.Select(item => item).Take(number+1).ToArray();

答案 2 :(得分:2)

它显示错误,因为您已声明int I,但尝试访问i,并且您还需要使用索引器访问y

string[] x={ "A", "B", "C", "D", "E", "F", "G" };
string[] y=new string[number];

for(int i=0;i<number;i++)
{
    y[i] = x[i];
}

工作正常,但如果您希望数字为number但仍存储前4个值,则可能需要将3增加一个...

答案 3 :(得分:0)

首先,如果number = 3,你需要一个更大的数组给你A,B,C,D

string[] x={ "A", "B", "C", "D", "E", "F", "G" };
string[] y=new string[number+1];

使用Array.Copy复制元素

Array.Copy(x, y, number+1);