2016-08-15 114 views
0

如何创建由类别及其子类别组成的数组。如何在多维数组中使用密钥

实施例:

Fruit 
    --> Apple 
    --> Banana 

Car 
    --> Civic 
    --> Vitz 

Drinks 
--> Pepsi 
--> Dew 

所以它成为一个完整的一个阵列。

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

+8

然后告诉我们你试过了什么,以及它怎么失败 – BugFinder

+0

结果会是什么样子? – ntohl

+0

尝试....'新字符串[3,3] {{“Apple”,“香蕉”},{“Civic”,“Vitz”}};''但是'key'作为'Fruit'您需要使用'Dictionary' – Riad

回答

0

创建一个名为ArrayObject的再创建类的水果,汽车和饮料,然后实现接口,使接口的阵列接口

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"); 
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阵列),你可以有不同数量的子类别。然后遍历你需要使用计数的子类别。

相关问题