2016-08-08 5 views
0

Ich habe eine 1-dimensionale Array-Zeichenfolge, die vielleicht die 5 bekanntesten Elemente enthält. Ich möchte jede, wie viele auch sein mögen, in der Array-Zeichenkette zu einer Bezeichnung auf meinem Formular im Format wie "Ich habe insgesamt item1, item2, item3, item4, item5 in meinem Array" ausgeben. Hier ist, wie meine Array wie folgt aussehen:Ausgangsdaten in einem 1-dimensionalen Array von Strings

Dim dirs As String() = Directory.GetFiles(C:\, "*.txt") 

For each name in dirs 
    mylabel.text = name >>> need each item to be here. Only ouputing last item. 
next 
+0

Es ist nicht wirklich klar, was Sie fragen, aber ist 'mylabel.Text =" Ich habe insgesamt "& String.Join (", ", dirs) &" in meinem Array "'was Sie suchen? – Mark

+0

@Mark ja, aber das Array wird den Pfad auch in den Verzeichnissen anzeigen, ich brauche nur den Namen der Textdatei. –

Antwort

0

Path.GetFileName kann nur den Dateinamen von einem vollständigen Dateipfad zu erhalten verwendet werden, und String.Join kann das Array in ein Komma getrennten Zeichenfolge drehen. beide mit den LINQ Select Verfahren der Kombination würde Ihre For Each Schleife mit ersetzen:

mylabel.Text = "I have a total of " & 
    String.Join(", ", dirs.Select(Function(x) Path.GetFileName(x))) & 
    " in my array" 

Es gibt auch Path.GetFileNameWithoutExtension ist, wenn Sie nicht in der Ausgabe die Dateierweiterung mögen.

+0

Sie sind fantastisch! –