如何编辑类数组中的变量

本文关键字:数组 变量 何编辑 编辑 | 更新日期: 2023-09-27 18:25:02

不知道如何表达标题,很抱歉措辞不当,但如果我有这样的

public class Item
{ 
     public string itemName;
     public double itemPrice;
     public double shipping;
     public double tax = 0.12;
     public double total;
}

然后我开始声明一个数组

Item[] item = new Item[100]

我觉得这是创建这样一个数组的糟糕方法,但这里的问题是一个任意大小的数组,所以我确信它会低于100,但项目会不断添加。

我现在如何编辑项目[0]的项目价格?

我尝试使用:

item[0].itemPrice = 34;

但无济于事。

谢谢!

如何编辑类数组中的变量

使用Item[] item = new Item[100];时,只需为集合分配内存,但也需要初始化此数组中的每个对象。

Item[] item = new Item[100];
item[0] = new Item();
item[0].itemName = "1";

您必须首先创建项目

item[0] = new Item();
item[0].itemprice = 34;

PS你应该让那些公共成员成为财产。

var items = new List<Item>();
item.Add(new Item())
items.First().ItemName = "Foo";

尝试使用List<Item>而不是数组。当您向List<T>添加项目时,它会自动扩展自身。

List<Item> list = new List<Item>();
Item myItem = new Item();
list.Add(myItem);
list[0].itemPrice = 0;

如果您声明了Item的数组,那么您正在创建该数组,但没有类实例;item[0]将是null

创建任意数量实例的一种简单方法是使用Enumerable.Range:

var items = Enumerable.Range(0, 20).Select (_ => new Item()).ToList();

这将创建一个包含20个Item实例的列表(您也可以通过调用ToArray而不是ToList来创建一个数组)。

您必须初始化数组中的每个项。假设你有一个合适的构造函数。。。

Item[] item = new Item[100]
for (int i = 0; i < 100; i++)
{
    item[i] = new item();
}
item[0].itemPrice = 34;