Laden...

In einer Klasse IEnumerable implementieren

Erstellt von michi_87 vor 4 Jahren Letzter Beitrag vor 4 Jahren 669 Views
M
michi_87 Themenstarter:in
1 Beiträge seit 2019
vor 4 Jahren
In einer Klasse IEnumerable implementieren

Hallo Zusammen!

Ich habe eine Frage und zwar habe ich für ein Projekt verschiedene Klassen mit Unterklassen geschrieben. Diese Klassen würde ich gerne im übergeordneten Methodenaufrufen mit einer foreach-Schleife durchsuchen. Allerdings finde ich keine Möglichkeit, so dass das richtig für mich funktioniert.

Die Klasse Side ist die übergeordnete Klasse. Die Klassen ItemClass und ObjectClass sind wieder Unterklassen mit eigenen Eienschaften usw. Wenn ich die Side Klasse nach Objekten durchsuchen will muss ich die IEnumerable Methoden implementieren. Dies geht wenn ich innerhalb der Side Klasse nur einen Klassentyp habe. Wie mache ich das bei mehreren?

Ziel ist es die Klasse zu durchlaufen mit einer Schleife und dann abhängig vom Typ wieder eine schleife aufzurufen um eine Eigenschaft in der untersten Klasse abzufragen...



public class Side : IEnumerable
{
   public ItemClass item1
   public ItemClass item2
   public ItemClass item3
  
   public ObjectClass Object1;

   public Side()
   {
      item1 = new ItemClass();
      item2 = new ItemClass();
      item2 = new ItemClass();
      Object1= new ObjectClass ();
   }

}

class App
{
    static void Main()
    {
        Side test = new Side();

       foreach(object obj in test)
        {
          ......
         }
    }
}


Kann mir jemand einen Tipp geben?

Viele Grüße!

Michael

16.807 Beiträge seit 2008
vor 4 Jahren

Wenn ich die Side Klasse nach Objekten durchsuchen will muss ich die IEnumerable Methoden implementieren.

Äh, Nein? Da hast Du was mächtig missverstanden.

IEnumerable ist das Interface, mit dem sich eine Collection umsetzen lässt, um diese mit einer entsprechenden Schleifenoperation zu durchlaufen.

Was ist denn Dein Ziel?

public class Side : IEnumerable
{
   public ItemClass item1
   public ItemClass item2
   public ItemClass item3

So würde man überhaupt keine Items in einer Klasse führen, sondern eben mit einer Liste.

public class Side
{
   public List<ItemClass> Items {get;set;}

Glaube Du solltest Dich da nochmal ganz kurz mit den Grundlagen beschäftigen 😃
Alternativ auch ausdrücken, was das konkrete Problem ist und was Dein Ziel ist.