2016-08-15 4 views
0

Как создать массив, который состоит из категорий и его подкатегорий.Как использовать ключ в многомерном массиве

Пример:

Fruit 
    --> Apple 
    --> Banana 

Car 
    --> Civic 
    --> Vitz 

Drinks 
--> Pepsi 
--> Dew 

Таким образом, становится полным один массив.

Примечание: Я не хочу использовать какие-либо коллекции, например, списки, словари и т.д.

+8

затем покажите нам, что вы пробовали, и как он потерпел неудачу – BugFinder

+0

Как бы выглядел результат? – ntohl

+0

попробуйте с помощью ... 'new string [3, 3] {{« Apple »,« Banana »}, {« Civic »,« Vitz »}};' НО для 'key' как' Fruit' вам нужно use '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 массив массивов), вы можете иметь разные количества подкатегорий. Затем, чтобы перебирать подкатегории, вам нужно будет использовать счетчик.

Смежные вопросы