动态增加数组中元素的数量

时间:2016-02-12 08:42:00

标签: c# arrays class

我试图创建一个以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...

4 个答案:

答案 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();