如何添加到数组C#的结尾?

如何在引用类的ArrayList末尾的Windows窗体上的TextBox和Button中添加新item

 private product[] value = new product[4]; value[1] = new product("One",5) value[2] = new product("Two",3) value[3] = new product("Three",8) 

工作流程

  • textbox1textbox2textbox3输入新产品详细信息
  • 当我单击Add ,新产品将添加到数组中:

    value[1] = new product("One",5)
    value[2] = new product("Two",3)
    value[3] = new product("Three",8)
    value[4] = new product("Four",2)

这样做的代码是什么?

数组是固定大小的,这意味着你不能添加比创建时分配的数字更多的元素,如果你需要一个自动resize的集合,你可以使用ListArrayList

例:

 // using collection initializers to add two products at creation time List products = new List{new Product("One",5), new Product("Two",3) }; // then add more elements as needed products.Add(new Product("Three",8)); 

使用List作为其他人提到的。 如果您在arrays上设置,请使用

 Array.Resize(ref product, your new size); 

如果您只是要添加几个产品(在arrays的整个生命周期内),只需要做类似的事情

 Array.Resize(ref product, product.Length + 1); 

如果你要添加很多产品,你可能想要做类似List的事情 – 像这样:

 Array.Resize(ref product, product.Length * 2); 

我认为您需要一个List集合,查看您的代码。 然后只需调用Add()方法即可

您无法向数组添加项目,您必须创建一个更大的新数组并将项目复制到该数组。 有一种方法,有点误导性地命名为Resize因为它实际上没有调整数组的大小:

 Array.Resize(ref value, 5); 

如果要将项添加到集合中,则应使用List:

 private List value = new List(); value.Add(new product("One",5)); value.Add(new product("Two",3)); value.Add(new product("Three",8)); value.Add(new product("Four",2)); 

编辑:
如果要调整arrays大小,可能需要增加大小而不是将其调整为特定值:

 int index = value.Length; Array.Resize(ref value, index + 1); value[index] = ... 

数组是零索引的,因此初始化为4的数组只能访问索引3 …

如果你希望数组增长,那么你必须至少将数组初始化为你想要增长的数量,否则你必须用新的更大的大小和副本创建一个新的数组。旧arrays结束; 不是很有效率。

在这种情况下,您最好使用类似列表的集合,而不是数组,以便大小可以动态增加。

您可能还应该看一下Array与List:何时使用哪个?