我试图创建一个以3个元素开头的动态数组。我想使用addColumn将一个元素添加到string [] name。但我想addColumn函数没有达到我的预期。我需要什么来实现这个功能?我想我需要像#34; 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...
答案 0 :(得分:2)
你喜欢
吗? 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);
}
答案 1 :(得分:1)
使用List<string>
代替数组。
答案 2 :(得分:1)
你只需要分配一次列数,只要你调用它就不会得到名字的长度,整个字段都是毫无意义的
public int getNumberofcolumns()
{
return name.Length;
}
注意:当然,首选列表。
答案 3 :(得分:1)
你应该使用List<string>
为你提供大量的库来操作它,它涵盖了你的所有要求。这里是doc
用法:
List<string> names = new List<string>();
//adding an item
names.Add('YourString');
//getting the length
names.Count();