我目前正在创建一个程序,用户可以使用打印机,只要该特定用户有足够的资金。
我目前面临的问题是,如果用户选择彩色打印而不是黑白打印,那么每张纸的价格就会上涨。
如何为现有数组添加值?
这是我的代码......
printers[0] = new Printer("printer1", 0.10M);
printers[1] = new Printer("printer2", 0.08M);
printers[2] = new Printer("printer3", 0.05M);
printers[3] = new Printer("printer4", 0.15);
printers[4] = new Printer("printer5", 0.09M);
foreach (Printer r in mPrinters)
{
if (printer != null)
printerCombo.Items.Add(r.getName());
}
答案 0 :(得分:3)
从技术上讲,你可以Resize数组:
Array.Resize(ref printers, printers.Length + 1);
printers[printers.Length - 1] = new Printer("printer6", 0.25M);
然而,更好的方法是将集合类型: array 更改为List<T>
:
List<Printer> printers = new List<Printer>() {
new Printer("printer1", 0.10M),
new Printer("printer2", 0.08M),
new Printer("printer3", 0.05M),
new Printer("printer4", 0.15),
new Printer("printer5", 0.09M), };
...
printers.Add(new Printer("printer6", 0.25M));
答案 1 :(得分:1)
数组具有固定大小 - 在创建大小为10的数组后,您无法再添加一个元素(使大小为11)。
使用List<Printer>
:
List<Printer> printers = new List<Printer>();
printers.Add(new Printer("printer2", 0.08M));
//add all items
您还可以按索引访问元素:
var element = printers[0];
使用List
您可以更改其大小,添加和删除元素。
答案 2 :(得分:0)
数组是固定长度的。您需要将值复制到新数组中或使用List,List&lt;&gt;或ArraryList。