2015-06-02 67 views
0

問題是 - 製作一個名爲ReadInFile的方法。 它應該在3個變量:方法聲明和形成

  1. 字符串文件名,它是文件
  2. INT的高度,這是表
  3. INT寬度,這是表中的寬度的高度的名稱

它返回一個字符串類型的2維數組。數組的大小取決於變量的高度和寬度。

使用此方法讀入從Learn下載的文件之一併將內容顯示到控制檯窗口。

我怎麼可能寫這個代碼?假設下載的文件的尺寸是(6,6)。下載的文件名稱爲「letters.csv」。 這裏是我寫的:

public string[, ] ReadInFile(string fileName, int height, int width) 
{ 
    string[, ] apj = new string[height, width]; 
    return apj[height, width]; 

    StreamReader fileName = new StreamReader(@"letters.csv"); 
    for (int i = 0; i < 6; i++) 
    { 
    for (int j = 0; j < 6; j++) 
    { 
     string yo = fileName.ReadLine(); 
     Console.WriteLine(yo); 
    } 
    } 

    fileName.Close(); 
} 
+0

你能提供一個樣本輸入文件? –

+0

是這行'return apj [height,width];'初始化後預期? –

+0

它返回一個字符串類型的二維數組。 @HariPrasad。 –

回答

0

我假設它從你的問題給了文件名是一個CSV。所以在這種情況下,你可以使用.Split(',')每行得到的值,然後將它們存儲陣列中:

public string[,] ReadInFile(string fileName, int height, int width) 
{ 
    var parsedFile = new string[height, width]; 

    var lines = File.ReadAllLines(fileName); 

    var row = 0; 

    foreach (var line in lines) 
    { 
     var split = line.Split(','); 

     var column = 0; 

     foreach (var value in split) 
     { 
      parsedFile[row, column] = value; 
      column++; 
     } 

     row++; 
    } 

    return parsedFile; 
} 
+0

當我在主要方法中調用此方法時,編譯器給我一個錯誤CS1501:方法'ReadInFile'沒有重載'2'參數 –

+0

你沒有正確調用它然後 - 需要用三個參數調用,即'var result = ReadInFile(「fileName」,6,6);' – RagtimeWilly