我有另一个问题。
如何根据参数将字符串数组转换为另一个字符串数组?
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。
基本上在参数的基础上,我想从父数组
生成另一个数组我知道这个问题不是太高科技但我无法绕过它。
非常感谢帮助。
此致
阿努拉格
答案 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);