将文本文件转换为列表 (C#)

问题描述 投票:0回答:1

我将link用作起点。我是C#的新手,但是有C / C ++的经验。我的目标是重新创建排序算法,并使用分叉使它们相互竞争。我已经成功地重新创建了mergesort,气泡和插入,并计划了已实现的quicksort。

我创建了一个单独的类,该类创建了100,000个随机整数的文件,以正确测试排序算法的速度。

StreamWriter sw = new StreamWriter(@"C:\pathtofile\randomNumbers.txt");

            int count = 0;
            Random rnd = new Random();
            int randomNumber;
            int lines = 0;
            while (count++ < 100000)
            {
                randomNumber = rnd.Next(1, 250);
                sw.Write(randomNumber);
                sw.Write(" "); // create white space
                if(lines == 25) //formatting
                {
                    sw.WriteLine("");
                    lines = 0;
                }
                lines++;
            }

我从我的主类中收到的将这些整数存储到数组列表中的错误现在失败。

lists.Add(Convert.ToInt32(listInts [j]));//错误:System.FormatException:'输入字符串的格式不正确。'

据我所知,当它转换整数时,它获取的不是整数,并且失败。但是,对我来说,令人困惑的部分是当我手动输入整数时,它工作得很好。

EX:134 0 13 42232 48 424 166 109

任何帮助将是感激的。

C#Nooby

c# string arraylist text-files
1个回答
0
投票

考虑到您遇到的错误,在我看来您没有考虑换行符(至少我能够以此方式重现它)。

这是对包含新行的文件的工作方式:

using (var reader = new StreamReader(@"c:\temp\test.txt"))
{       
    var text = await reader.ReadToEndAsync();       
    var numbers = text.Split(new [] {' ', '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries).Select(word => Convert.ToInt32(word));
    // do something with numbers (IEnumerable<Int32>)
}
© www.soinside.com 2019 - 2024. All rights reserved.