如何添加到数组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)
工作流程
- 在
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)
这样做的代码是什么?
数组是固定大小的,这意味着你不能添加比创建时分配的数字更多的元素,如果你需要一个自动resize的集合,你可以使用List
或ArrayList
例:
// 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:何时使用哪个?