如何编辑类数组中的变量
本文关键字:数组 变量 何编辑 编辑 | 更新日期: 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;