使用文件读取将整数添加到列表或数组

Add integers to a list or array with filereading

我有一个包含一些数字的 .txt 文件

File:
1
2
3
4

我想要一个方法来读取这些数字并将它们添加到列表或数组中,该列表或数组将在消息框中显示。

我现在有这个:

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

我收到一条荷兰语错误消息:

Can not read the characters

我认为 File.ReadAllText 仅适用于字符串,但我不确定。可能我转换错了。

File.ReadAllLines() returns an array of strings. Convert.ToInt32 取一个字符串。

您需要遍历文件中的每个字符串并一次转换一个。

File.ReadAllText 失败,因为它 returns 所有不能转换为整数的文本。您应该尝试以下操作:

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();

好吧,您可以在这里组合使用 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() + ", ")));
    }

尝试逐行读取并将字符串转换为整数:

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

没有 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);
}