2017-01-10 36 views
0

我有一些數字添加整數列表或陣列filereading

File: 
1 
2 
3 
4 

.txt文件我想有讀取這些數字,並將其添加到列表或陣列,它會顯示一個方法它在一個消息框中。

我有這樣的時刻:

public void LaadVrijeKamers() 
     { 
      int KamerNummers = Convert.ToInt32(File.ReadAllText(@"x\Vrijekamers.txt")); 
      MessageBox.Show(Convert.ToString(KamerNummers)); 
     } 

我得到在荷蘭的一個錯誤,說以下內容:

Can not read the characters 

我覺得File.ReadAllText僅用於字符串,但我我不確定。也許我正在轉換錯誤。

+1

嘗試不要使用像這樣的嵌套調用:ToInt32(File.ReadAllText)。 –

回答

1

沒有Linq查詢

var rows = File.ReadAllText(@"x\Vrijekamers.txt"); 
var strnumbers = rows.Split(new string[] { "\r\n" }, StringSplitOptions.None); 

var ListOfNumber = new List<int>(); 

foreach (string number in strnumbers) 
{ 
    int num = 0; 

    if(int.TryParse(number, out num)) 
     ListOfNumber.Add(num); 
} 
2

File.ReadAllText失敗,因爲它返回所有不能轉換爲整數的文本。你應該嘗試類似以下內容:

int intList = File.ReadAllLines() 
        -- get only lines with numbers 
        .Where(l => { 
         int val; 
         bool isOk = int.TryParse(l, out value); 
         return isOk; 
        } 
        -- actual conversion 
        .Select(l => Convert.ToInt32(l) 
        .ToList(); 
1

那麼,你可以使用LINQ方法這裏的組合:由線和轉換線

public void LaadVrijeKamers() 
    { 
     var KamerNummers = File.ReadAllLines(@"x\Vrijekamers.txt") 
           .Skip(1)      //Skips file header (if needed) 
           .Select(Int32.Parse)   //Converts to int 
           .ToList();     //Returns List 

     // To display numbers we'd first have to create a string from our list 
     MessageBox.Show(string.Concat(KamerNummers.Select(n => n.ToString() + ", "))); 
    } 
5

嘗試閱讀行的整數:

var numbers = File.ReadLines(@"C:\path\numbers.txt").Select(int.Parse).ToList();