如何为数组添加额外的值?

时间:2017-01-20 19:53:02

标签: c# arrays winforms int

我目前正在创建一个程序,用户可以使用打印机,只要该特定用户有足够的资金。

我目前面临的问题是,如果用户选择彩色打印而不是黑白打印,那么每张纸的价格就会上涨。

如何为现有数组添加值?

这是我的代码......

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());
            }

3 个答案:

答案 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。