2016-07-26 3 views
0

Ich habe eine TXT-Datei, die mehrere Zahlen enthält, und ich möchte, dass es die Datei liest und die Zahlen ausgibt. Aber wenn es die Datei liest, gibt es System.String [] anstelle der Zahlen aus. Jede Hilfe wäre willkommen.Lesen von TXT-Dateien gibt System.String [] anstelle des beabsichtigten Ergebnisses aus C#

class Program 
{ 
    static void Main(string[] args) 
    { 
     string[] unsorted = System.IO.File.ReadAllLines(@"\University\AlgRetake\Files\WS1_AF.txt"); 
     //Grabs the .txt file and reads line by line 

     System.Console.WriteLine("Unsorted: "); 
     foreach (string line in unsorted) 
     { 
      Console.WriteLine(unsorted); 
     } 
     //outputs the unsorted array 


     Console.WriteLine("Press any key to exit!"); 
     System.Console.ReadKey(); 

    } 
} 
+0

Sie versuchen, alle unsortierten zu schreiben, anstatt die tatsächliche Linie Sie sind auf. Da Arrays (selbst Arrays von String) keine gute toString-Implementierung enthalten, wird nur der Typ ausgegeben. Wenn Sie es in 'Console.WriteLine (line)' ändern, sollte das Problem behoben sein. –

Antwort

4

In Ihrem foreach-Schleife, sollten Sie Console.WriteLine(line);

Ansonsten haben Sie die Zeichenfolge Array-Objekt als String an die Konsole werfen schreiben.

+0

Vielen Dank :) –

1

Sie waren sehr nah dran - Sie müssen LINE ausgeben. IE - LINE ist jeder Array-Eintrag.

class Program 
{ 
    static void Main(string[] args) 
    { 
     string[] unsorted = System.IO.File.ReadAllLines(@"\University\AlgRetake\Files\WS1_AF.txt"); 
     //Grabs the .txt file and reads line by line 

     System.Console.WriteLine("Unsorted: "); 
     foreach (string line in unsorted) 
     { 
      ****Console.WriteLine(line);**** 
     } 
     //outputs the unsorted array 


     Console.WriteLine("Press any key to exit!"); 
     System.Console.ReadKey(); 

    } 
} 
+1

Nur ein Nit: die Sternchen, während sie Aufmerksamkeit auf den Codewechsel lenken, machen auch den Code unkompilierbar. Es könnte sinnvoller sein, die Änderung mit einem Kommentar aufzurufen, falls jemand versucht, Ihren Code direkt zu verwenden. +1 sowieso. – adv12

+0

Fair genug adv. Nie wieder. Ich habe versucht, es zu kündigen;) – AntDC

0

Linie wie in den bestehenden Antworten
aber dies ist effizienter, da kein Overhead zu bespannen Lesung [] unsortiert

using (StreamReader sr = new StreamReader(path)) 
{ 
    while (sr.Peek() >= 0) 
    { 
     Console.WriteLine(sr.ReadLine()); 
    } 
} 
+0

Könnte erklären, warum das effizienter ist, und unter welchen Umständen der Unterschied in der Effizienz zählt. –

Verwandte Themen