2016-03-31 16 views
0

Ich baue gerade eine C# Konsolenanwendung um Wetterdaten über 80 Jahre anzuzeigen, zu suchen und zu sortieren. Um dies zu tun, implementiere ich ein 2d-Array, um die Daten der Jahre, Monate, Sonne, Regen, Luft Frost und Max & Min Temperaturen (die in. TXT-Dateien gespeichert sind), so zu speichern:initialisieren 2d Array aus mehreren Textdateien C#

string[,] Ws1Data = new string[lineCount,7]{ 
      File.ReadAllLines(@"CMP1124M_Weather_Data\Year.txt"), 
      File.ReadAllLines(@"CMP1124M_Weather_Data\Month.txt"), 
      File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_Sun.txt"), 
      File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_Rain.txt"), 
      File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_AF.txt"), 
      File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_TMin.txt"), 
      File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_TMax.txt"), 
     }; 
jedoch

, wenn ich den Code zu kompilieren bekomme ich folgende Fehler:

program.cs(66,35): error CS0150: A constant value is expected 
program.cs(67,5): error CS0846: A nested array initializer is expected 

Kann jemand bitte diese Fehler erklären und wie würde ich gehen über diese 2D-Array Implementierung effizienter, danke.

+0

Mögliche Duplikat von [Ein konstanter Wert erwartet wird, wenn ein Array initialisieren] (http://stackoverflow.com/questions/3594314/a-constant-value-is-expected-when- initialize-a-array) –

Antwort

0

können Sie nur initialisieren 2-dimensionalen Array mit Konstanten, wie folgt aus:

string[,] Ws1Data = new string[2, 7] 
{ 
    { "3", "7", "7", "7", "7", "7", "7" }, 
    { "3", "7", "7", "7", "7", "7", "7" }, 
}; 

Ich denke, in Ihrem Fall sind Sie besser dran gezackten Arrays. Machen Sie es wie folgt aus:

string[][] Ws1Data = new [] 
{ 
    File.ReadAllLines(@"CMP1124M_Weather_Data\Year.txt"), 
    File.ReadAllLines(@"CMP1124M_Weather_Data\Month.txt"), 
    File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_Sun.txt"), 
    File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_Rain.txt"), 
    File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_AF.txt"), 
    File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_TMin.txt"), 
    File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_TMax.txt"), 
}; 
-1

Ich denke, die erste Dimension des mehrdimensionalen Array muss festgelegt werden. Versuchen Sie dies so etwas wie:

string[][] Ws1Data = new string[8][]; 

    Ws1Data[0] = File.ReadAllLines(@"CMP1124M_Weather_Data\Year.txt"); 

    Ws1Data[1] = File.ReadAllLines(@"CMP1124M_Weather_Data\Year.txt"); 

    Ws1Data[2] = File.ReadAllLines(@"CMP1124M_Weather_Data\Month.txt"); 

    Ws1Data[3] = File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_Sun.txt"); 

    Ws1Data[4] = File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_Rain.txt"); 

    Ws1Data[5] = File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_AF.txt"); 

    Ws1Data[6] = File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_TMin.txt"); 

    Ws1Data[7] = File.ReadAllLines(@"CMP1124M_Weather_Data\WS1_TMax.txt"); 
+0

Haben Sie versucht, diesen Code vor dem Hochladen zu kompilieren? – Enigmativity

+0

Danke für den Hinweis auf meinen Fehler. Wird das stattdessen funktionieren? (Ich wechselte zu gezackten Array statt mehrdimensional) –