2013-08-20 14 views
0

Вот два примера:программно определен # Еогеасп петли C#

У меня есть массив с 3-х элементов: Вселенная, планета и континент я хочу использовать цикл Еогеасп так:

foreach(var universe in Universe) 
    { 
     foreach(var planet in Planet) 
     { 
      foreach(var continent in Continent) 
      { 
       // here comes my code 
       } } } 

В в этом случае массив содержит 3 элемента, поэтому мне нужны 3 оператора foreach.

Теперь скажем, что я добавляю 2 дополнительных элемента в массив (Страна и состояние) Там должно быть 5 циклов foreach.

Но что, если массив содержит 600 элементов: то мне нужно будет написать заявления 600 Foreach ...

Так как это может быть решена программно?

  • Динамический код с добавлением?
  • рекурсивные коды (у меня нет опыта работы с ними)
  • ...
+0

Если 'Вселенная',' Земля' и 'Континент' являются коллекциями, почему они являются единственными терминами? Почему Земля должна иметь множество земель? И на континенте не может быть много континентов: это немного опровергает определение континента. –

+0

ok - Я просто выбрал это в качестве примера, но скажет планета? – user2606722

+0

Это все еще единственное. Каждая из этих коллекций вещей, или что? Просьба привести конкретный пример и пояснения. –

ответ

1

Если у вас есть один массив с тремя пунктами в нем, то для того, чтобы перечислить по пунктам вы должны только один Еогеасп петля.

List<Object> items = new List<Object> { Universe, Earth, Continent }; 
foreach (var item in items) { ... } 

Вам нужно будет только написать дополнительный вложенный Еогеасп петля, если объекты, содержащиеся на внешнем массиве каждый сами реализованы IEnumerable, и вам необходимы, чтобы перечислить их, а также. Не видя проблемы, которую вы пытаетесь решить, трудно сделать рекомендацию. Но я считаю, что предположение о необходимости вложенных структур foreach неверно.