如何在此示例中使用列表

a12*_*773 2 c# arrays list

可以说我有一个这样的数组(我知道在c#上是不可能的):

string[,] arr = new string[,]
{
    {"expensive", "costly", "pricy", 0},
    {"black", "dark", 0}
};
Run Code Online (Sandbox Code Playgroud)

那么如何在列表中添加这些项目以及如何在"pricy"0之间添加新项目?我在网上找不到任何例子.

kpr*_*bst 6

数组是不可变的,因此您无法真正添加或删除项目.例如,您唯一能做的就是将项目复制到另一个数组实例,减去您不想要的项目,或者执行相同但使用更高维度并添加您需要添加的项目.

我建议在List<T>这里使用,其中T可以是一个简单的类型,它反映了你要添加到数组中的东西.例如:

class Thing {
    public string Prop1 {get; set; }
    public string Prop2 {get; set; }
    public string Prop3 {get; set; }
    public int Prop4 {get; set; }
}

List<Thing> list = new List<Thing>();

list.Add(new Thing() { Prop1 = "expensive", Prop2 = "costly", Prop3 = "pricy", Prop4 = 0};
Run Code Online (Sandbox Code Playgroud)

然后你可以插入项目:

list.Insert(1, new Thing() { Prop1 = "black", Prop2 = "dark", Prop4 = 0});
Run Code Online (Sandbox Code Playgroud)

不确定这是否适合您,这取决于您的"锯齿状"数据是否适合Thing.显然,这里的'Prop1'等等就是数组中数据的实际属性名称.


Hen*_*man 5

如果要添加(插入)项目,请不要使用数组.使用List<>.

您的样本可能会被覆盖

var data = new List<string>[2] { new List<string>(), new List<string> () };
Run Code Online (Sandbox Code Playgroud)

然后你可以使用像这样的语句

data[0].Add("expensive");
string s = data[1][1];     // "dark"
Run Code Online (Sandbox Code Playgroud)

当然不可能有0字符串数组或List.您可以使用null但首先尝试避免它.