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

Tim*_*mmy 14 .net c# arrays winforms

如何itemArrayList引用类的结尾处的Windows窗体上添加TextBox和Button中的新内容?

private product[] value = new product[4];

value[1] = new product("One",5)
value[2] = new product("Two",3)
value[3] = new product("Three",8)
Run Code Online (Sandbox Code Playgroud)

工作流程

  • 进入新产品的详细信息为textbox1,textbox2,textbox3
  • 当我点击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)

这样做的代码是什么?

Pop*_*lin 28

数组是固定大小的,这意味着你不能添加比创建时分配的数字更多的元素,如果你需要一个你可以使用的自动调整大小集合List<T>或者ArrayList

例:

// using collection initializers to add two products at creation time
List<Product> products = new List<Product>{new Product("One",5), new Product("Two",3) };

// then add more elements as needed
products.Add(new Product("Three",8));
Run Code Online (Sandbox Code Playgroud)


s_h*_*itt 16

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

Array.Resize<Product>(ref product, your new size);
Run Code Online (Sandbox Code Playgroud)

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

Array.Resize<Product>(ref product, product.Length + 1);
Run Code Online (Sandbox Code Playgroud)

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

Array.Resize<Product>(ref product, product.Length * 2);
Run Code Online (Sandbox Code Playgroud)


Joh*_*don 0

数组的索引为零,因此初始化为 4 大小的数组最多只能访问索引 3...

如果您希望数组增长,那么您必须将数组初始化为至少与您希望能够增长到的大小一样大,否则您必须创建一个具有新的更大大小的新数组并复制旧数组结束;效率不高。

在这种情况下,你最好使用像列表这样的集合,而不是数组,这样大小就可以动态增加。