我已经创建了一个可以通过1
扩展数组值的函数
我有一个问题,我试图做以下功能:
//This is error free and compiles properly
public string[] addindex(string[] Input)
{
string[] ar2 = new string[Input.Length + 1];
Input.CopyTo(ar2, 0);
ar2.SetValue("", Input.Length);
Input = ar2;
return Input;
}
支持多个参数。
所以,我做了这个:
public string[] addindexes(params string[] lists)
{
string[] ar2;
for (int x = 0; x < lists.Length; x++)
{
ar2 = new string[lists[x].Length + 1];
lists[x].CopyTo(ar2, 0); //Error here
ar2.SetValue("", lists[x].Length);
lists[x] = ar2; //Error here
}
return lists;
}
好像我使用了错误的语法或什么?
答案 0 :(得分:2)
您需要将params string[] lists
更改为params string[][] lists
,因为您现在正在传入数组数组。 (至少,方法会看到一个数组数组,即使你传入多个单独的数组。)
同样,您需要将返回类型更改为string[][]
。
有关详细信息,请参阅this。
答案 1 :(得分:1)
您可以使用Resize
方法更简单:
此方法分配具有指定大小的新数组,将旧数组中的元素复制到新数组,然后用新数组替换旧数组。
再延长一项:
Array.Resize(ref list, list.Length + 1);
list[list.Length - 1] = string.Empty;
扩展多个1:
int size = 5;
Array.Resize(ref list, list.Length + size);
for (int i = list.Length - size; i < list.Length; i++)
list[i] = string.Empty;
答案 2 :(得分:0)
你首先使用通用list怎么样?
List<string> Input = new List<string>();
Input.Add("new item");