如何在多维数组中使用key

时间:2016-08-15 09:06:37

标签: c# .net multidimensional-array

如何创建由类别及其子类别组成的数组。

示例:

Fruit
  --> Apple
  --> Banana

Car
  --> Civic
  --> Vitz

Drinks
 --> Pepsi
 --> Dew

所以它变成了一个完整的数组。

注意:我不想使用任何集合,例如列表,字典等。

2 个答案:

答案 0 :(得分:1)

如果您只能使用数组,那么您可以执行以下操作:

object[][] arr = new object[3][];
arr[0] = new object[2];
arr[0][0] = "Fruit";
arr[0][1] = new string[2] { "Apple", "Banana" };
arr[1] = new object[2];
arr[1][0] = "Car";
arr[1][1] = new string[2] { "Civic", "Vitz" };
arr[2] = new object[2];
arr[2][0] = "Drinks";
arr[2][1] = new string[2] { "Pepsi", "Dew" };

然后迭代:

for (int i = 0; i < 3; i++)
{
    StringBuilder line = new StringBuilder();
    line.Append((string)arr[i][0] + ": ");
    string[] subs = (string[])arr[i][1];
    for (int j = 0; j < 2; j++)
    {
       line.Append(subs[j] + "; ");
    }
    MessageBox.Show(line.ToString());
}

请注意,因为它使用锯齿状数组(数组的AKA数组),您可以使用不同数量的子类别。然后,要遍历子类别,您需要使用计数。

答案 1 :(得分:0)

创建一个名为arrayobject的接口然后创建类fruit,car和drinks然后实现接口并创建接口数组

类似

public interface arrayobject 
{
    string description();
}
class Fruit:arrayobject
{
    public string fruittype;
    public Fruit(string type)
    {
        fruittype = type;
    }

    public string description()
    {
        return fruittype;
    }
}
class Car : arrayobject
{
    public string Cartype;
    public Car(string type)
    {
        Cartype = type;
    }

    public string description()
    {
        return Cartype;
    }
}

现在你可以创建一个arrayobject数组

arrayobject[] mylist = new arrayobject[2];
mylist[0] = new Fruit("banana");
mylist[1] = new Car("my Ford");