动态增加一个数组中元素的数量
问题描述:
我想创建一个以3个元素开始的动态数组。我想使用addColumn将一个元素添加到string []名称。但我猜addColumn函数没有达到我的预期。我需要实现这个功能吗?我想我需要像“name.addElement()”这样的东西吗?动态增加一个数组中元素的数量
class LogData
{
private string[] name;
private int numberOfColumns;
public LogData()
{
name = new string[3];
numberOfColumns = name.Length;
}
public void addColumn()
{
name = new string[1];// Thats not working, after calling, the number of columns is still 3
}
public int getNumberofcolumns()
{
return numberOfColumns;
}
}
我叫主温控功能:
LogData logData = new LogData();
Console.Write(logData.getNumberofcolumns() + "\n");
logData.addColumn();
Console.Write(logData.getNumberofcolumns() + "\n");
Console.Write("done...\n\n");
Console.ReadLine();
输出是:
3
3
done...
答
你lloking为
public void addColumn() {
Array.Resize(ref name, name.Length + 1);
}
但是,恕我直言,更好的解决方案是要改变String[]
到List<String>
:
class LogData
{
private List<String> name = new List<String>();
...
public void addColumn() {
name.Add(null);
}
答
使用List<string>
而不是阵列。
答
你只指定的列数一次,它没有得到,只要你把它的名字的长度,整场是没有意义的
public int getNumberofcolumns()
{
return name.Length;
}
注:当然,名单将是首选。
答
你应该使用一个List<string>
,它提供了大量的库来操作它,它涵盖了你的所有需求。这里的doc
用法:
List<string> names = new List<string>();
//adding an item
names.Add('YourString');
//getting the length
names.Count();
使用'名单'如果你想添加的项目。如果你最后需要一个数组,使用'list.ToArray()'。 –
想想'列表'它提供了你需要的一切自动... –
Shnugo
类似:https://stackoverflow.com/questions/4840802/change-array-size – SiD