Laden...

ListViewItem-Array zurückgeben

Erstellt von Michael1995 vor 3 Jahren Letzter Beitrag vor 3 Jahren 815 Views
M
Michael1995 Themenstarter:in
22 Beiträge seit 2020
vor 3 Jahren
ListViewItem-Array zurückgeben

Servus zusammen,

ich habe folgende Frage, wie kann ich bei meinem Code ListViewItems zurückgeben, als Array?

Die ListViewItems werden nach und nach erstellt, doch irgendwie pack ich es nicht, diese in ein Array zu speichern und diese dann zurückzugeben (als ListViewItem[])

Könnt ihr helfen?
Etwas weiter unten im Code der Versuch, des returns...

danke.


public static ListViewItem[] GenerateItems(string[] fileNames) {
            
            for (int k = 0; k < fileNames.Length; k++) {
                string[] Lines = System.IO.File.ReadAllLines(fileNames[k]);

                ListViewItem[] Items = new ListViewItem[Lines.Length];
                

                for (int i = 1; i < Lines.Length; i++) {       // start with i = 1, because in line 0 there is no information
                    string[] SingleWords = Lines[i].Split('~');

                    Items[i] = new ListViewItem("Anfrage");

                    for (int j = 0; j < SingleWords.Length; j++) {
                        Items[i].SubItems.Add(SingleWords[j]);      // add SubItems, quantity depending on quantity of SingleWords-Array              
                    }


                }
     ?           ListViewItem[] ItemsBack = new ListViewItem[Lines.Length];
     ?          return ItemsBack;
            }

        }

5.657 Beiträge seit 2006
vor 3 Jahren

Versuch mal:

return Items;

Weeks of programming can save you hours of planning

T
2.219 Beiträge seit 2008
vor 3 Jahren

Nimm für solche dynamischen Größen die List<T>
Diese kann dann dynamisch wachsen und auch vordimensioniert werden, wenn die Mindestgröße bekannt ist.

Ebenfalls solltest du das Laden eines einzelnen Items in eine eigene Methode auslagern.
Und die lokalen Variablen sollten immer mit kleinen Buchstaben beginnen.
Gibt für C# einen allgemeinen Code Guideline was den Syntax angeht und man erkennt dann auch wann man mit lokalen Variablen und Eigenschaften arbeitet.

Nachtrag:
@MrSparkle
Wird nicht klappen, da Items eine lokale Variable innerhalb der Schleife ist.
Hier müsste eher ItemsBack auf die gesamt Größe aller Items dimensioniert und die Einträge an der richtigen Stelle in das Array geschrieben werden.
Sinnvoller wäre es dies mit List<T> zu lösen, da man sonst unnötigen Verwaltungscode schreiben muss.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

M
Michael1995 Themenstarter:in
22 Beiträge seit 2020
vor 3 Jahren

danke für den Beitrag. Würde es gerne bei der Implementierung so wie sie ist belassen, aber es ist ein großer Aufwand, ein Array an ListViewItems zurückzugeben? Hätte ich nicht gedacht, habe sehr viel nach diesem Schema jetzt aufgebaut.
Eigentlich müssten es ja k x i -viele Einträge im Array dann sein, das ich zurückgeben will.

Hinweis von MrSparkle vor 3 Jahren

Bitte keine Fullquotes!
[Hinweis] Wie poste ich richtig?

5.657 Beiträge seit 2006
vor 3 Jahren

T-Virus hat Recht, wenn die Größe vorher nicht bekannt ist (das hatte ich übersehen), dann verwendet man eine List<T>. Wenn man dann am Ende ein Array benötigt, dann kann man das aus der Liste mit der ToArray()-Methode erstellen.

Eigentlich müssten es ja k x i -viele Einträge im Array dann sein, das ich zurückgeben will.

Wenn die Anzahl bekannt ist, kannst du ja vorher (außerhalb der Schleife) das Array in der richtigen Größe initialisieren.

Weeks of programming can save you hours of planning