C# 如何编辑类数组中的变量

C# 如何编辑类数组中的变量,c#,arrays,C#,Arrays,不知道如何表达标题,很抱歉措辞不好,但如果我有这样的话 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] 我觉得这是一种很糟糕的方

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

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]的itemPrice

我尝试使用:

item[0].itemPrice = 34;
但是没有用


谢谢

当您使用
Item[]Item=新项[100],您只需为集合分配内存,但也需要初始化此数组中的每个对象

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

您必须首先创建项目

PS您应该使这些成员成为公共属性。

var items=new List();
var items = new List<Item>();
item.Add(new Item())
items.First().ItemName = "Foo";
item.Add(新项()) items.First().ItemName=“Foo”;
尝试使用
列表
而不是数组<代码>列表
在向其添加项目时自动扩展自身

List<Item> list = new List<Item>();
Item myItem = new Item();
list.Add(myItem);

list[0].itemPrice = 0;
List List=新列表();
项目myItem=新项目();
列表。添加(myItem);
列表[0]。itemPrice=0;

如果声明
项的数组,则创建的是数组,而不是类实例<代码>项[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;
Item[]Item=新项[100]
对于(int i=0;i<100;i++)
{
项目[i]=新项目();
}
项目[0]。项目价格=34;

是否初始化了数组中的每个项对象?在旁注中,您可能希望了解如何使用构造函数和getter/setter方法。如果这对您有帮助,您可以接受正确的答案。谢谢我没有初始化每个项。您需要一个循环来初始化数组中的每个项。
Item[] item = new Item[100]

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

item[0].itemPrice = 34;