Laden...

List mit mehrdimensionalem String

Erstellt von trib vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.067 Views
T
trib Themenstarter:in
708 Beiträge seit 2008
vor 15 Jahren
List mit mehrdimensionalem String

Hallo zusammen,

nach langem Suchen per SuFu und Mr. Google wende ich mich mal an Euch.

Worum gehts:
Ich habe ein Programm welches in Ordnern nach bestimmten Dateitypen (Rekursiv) sucht und diese in eine Excel-Datei listet.
Möchte ich den Ordner dazu ausgeben, müssen die Dateien zwischengespeichert werden um zu verhindern das, 1. der Ordner unter den Dateien steht & 2. die Ordner ohne diesen Dateityp ignoriert werden.

Da es immer um einen Ordner mit 8 Informationen geht habe ich ein Array erstellt.
Für die Dateien benötige ich auch ein Array mit 8 Informationen, jedoch ist die Anzahl der Dateien in dem Ordner natürlich unterschiedlich.
-> Also benötige ich ein mehrdimensionales Array in einer List. (8 Listen wären ja blöd...)

Problem Nr. 1 die Deklaration:


List<string> Einträge = new List<string>(new string[10]);
string[] temp = new string[10];
Einträge.Add(temp);

Kompiler: The best overloaded method match for System.Collections.Generic.List<string>.Add(string)' has some invalid arguments
Habe schon etliche Abwandelungen ausprobiert, bis dato jedoch ohne Erfolg 🙁

Problem Nr. 2 das Speichern:


foreach(string[] files in Einträge)
                  {Excel.CellText(files[0],"Default",true);
                   ...

Kompiler: Cannot convert type 'string' to 'string[]‘
-> Was ja auch erstmal Sinn macht, wenn die Liste falsch initialisiert ist.
Aber geht das überhaupt so, wie ich mir das vorstelle?

Vielen Dank für jede Hilfe,

TriB

Gelöschter Account
vor 15 Jahren

ich empfehle dir eine klasse, die alle acht informationen trägt. dann kannst du iene liste von diesen klassen anlegen.

ansonsten kannst du die schlechtere alternative nehmen und eine List<string[]> nehmen.

T
trib Themenstarter:in
708 Beiträge seit 2008
vor 15 Jahren

Hey, danke JAck30lena!

Habe es mit der Klasse gelöst und es hat auf Anhieb funktioniert.

Klasse "Files.cs" erstellt und 8 Variablen mit Eigenschaften angelegt.

In der Main die List erstellt:

List<Files> Einträge = new List<Files>();

Die Infos speichern...

Files dateien = new Files();
dateien.Info1 = infos.ToString();
...
Einträge.Add(dateien);

...und die Schleife dann so aufgebaut:

foreach(Files dateien in Einträge)
{
       Excel.CellText(dateien.Info1,"Default",true);
       Excel.CellText(dateien.Info2);
       ...

War doch einfacher als ich dachte.
Vielleicht hätte ich in der Klasse besser ein ein string[] Array genommen... Mal schauen. =)

Gelöschter Account
vor 15 Jahren

nein ich denke so wie du es gemacht hast ist der richtige weg.

T
574 Beiträge seit 2008
vor 15 Jahren

Problem Nr. 1 die Deklaration:

  
List<string> Einträge = new List<string>(new string[10]);  
string[] temp = new string[10];  
Einträge.Add(temp);  
  

Kompiler: The best overloaded method match for System.Collections.Generic.List<string>.Add(string)' has some invalid arguments
Habe schon etliche Abwandelungen ausprobiert, bis dato jedoch ohne Erfolg 🙁

Ich würde meinen das gehört so:

List<string[]> Einträge = new List<string[]>();
string[] temp = new string[10];
Einträge.Add(temp);

dann müsste auch das foreach gehen ...

Kannst evtl auch mal:

List<string[10]> Einträge = new List<string[10]>();

ausprobieren, da bin ich mir aber so ausm Blauen heraus ned sicher

Gelöschter Account
vor 15 Jahren

@tkrasinger

  1. habe ich es schon als möglichkeit erwähnt
  2. ist das keine gute lösung
  3. geht bei der besseren lösung mit der klasse eine foreach ebenso
  4. geht "List<string[10]> Einträge = new List<string[10]>(); " nicht da "string[10]" kein typ ist. die 10 bedeutet nur die anzahl der dimensionen und wird bei der arrayinitialisierung verwendet. somit ist es für lists nicht zu gebrauchen.