Entwickler-Ecke

Basistechnologien - Inhalte von List<List<struct>> abfragen


petsch218 - Do 06.01.22 18:45
Titel: Inhalte von List<List<struct>> abfragen
Liebe Experten,

ich arbeite privat mit einer Windows-Anwendung in der/für die ich Addons in C# schreiben kann.
So greife ich Ideen auf und versuche diese in C# umzusetzen. Natürlich stoße ich da an meine Grenzen und nutze bei der Suche nach Lösungen viel das Internet - auch dieses Forum.
Nun stecke ich fest und würde aber gerne weitermachen (können).

Mein Projekt:
Ich möchte viele Werte in eine variable Anzahl von Listen einsortieren und später auswerten.
So erstelle ich eine Liste mit Listen. Die Werte möchte ich nicht einfach als <double> abspeichern, sondern in einer Struktur <struct>, die aus einer Kontrollnummer (int) und den Werten (double) besteht. Evtl. füge später ich noch weitere Werte.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
private struct StructWerteReihen
{
  public int S_KNummer; // Kontrollnummer
  public double S_WertReihe1; // Wertereihe1
  public double S_WertReihe2; // Wertereihe2
}

StructWerteReihen _StructWerte;

private List<List<StructWerteReihen>> ListeDerListenStruct = new List<List< StructWerteReihen >>(); // Liste fuer Struct

private int __IndexAnzahlListen = 5// Anzahl der ListeDerListenStruct, hier 5 gewaehlt

private int _ListenIndex;

Die variable Anzahl an Listen für die Strukturen werden erstellt.


C#-Quelltext
1:
2:
3:
4:
for (int __StructIndex = 0; __StructIndex < _IndexAnzahlListen; __StructIndex ++)
{
    ListeDerListenStruct.Add(new List<StructWerteReihen>());
}

Die Listen werden gefüllt, was ich kontrollieren kann.


C#-Quelltext
1:
ListeDerListenStruct[_ListenIndex].Count;                    

Was mir nicht gelingt ist die Auswertung, d.h., der Zugriff auf die Inhalte der Strukturen.

Ich möchte die Inhalte der Strukturen je nach Index abfragen:

Z.B. für den
Index „_ListenIndex = 3“ den Wert „S_WertReihe1“ in der Struktur „StructWerteReihen“
oder für den
Index „_ListenIndex = 4“ den Wert „S_WertReihe2“ in der Struktur „StructWerteReihen“
usw.

Ich hoffe, dass das Problem verständlich beschrieben wurde.
Ich bin für jeden Hinweis dankbar, jedoch weiß ich auch, dass mir noch viele Grundlagen in C# fehlen.


Th69 - Do 06.01.22 20:11

Hallo und :welcome:

ich verstehe zwar nicht, warum du eine Liste von Listen hier hast, aber generell kannst du für jede Liste den Indexoperator [] benutzen, d.h. bei einer zweifach geschachtelten Liste also z.B.

C#-Quelltext
1:
var value = ListeDerListenStruct[index1][index2].S_WertReihe1;                    


Ralf Jansen - Do 06.01.22 20:27

Zitat:
Ich bin für jeden Hinweis dankbar, jedoch weiß ich auch, dass mir noch viele Grundlagen in C# fehlen.


Da würde ich dir gerade mal noch mitgeben das du hier sehr wahrscheinlich keinen struct willst. Du solltest eine class nehmen und wenn du genau weist was struct letztendlich bedeutet dann kannst du nochmal überlegen da ein struct von zu machen.

Falls du struct(s) aus anderen Sprachen kennst hilft das hier nicht. In C# bedeutet in den meisten Fällen struct etwas anderes als man mit Vorkenntnissen aus anderen Sprachen vermuten könnte.