0

我正在将文本文件中的整数读入int数组,所以我使用以下代码。但它似乎没有读入预期的整数数:

string fileContent = File.ReadAllText("D:\\pixels.txt");
TextWriter tw = new StreamWriter("D:\\print.txt");
string[] integerStrings = fileContent.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
int[] integers = new int[integerStrings.Length];
for (int n = 0; n < integerStrings.Length; n++)
{
    integers[n] = int.Parse(integerStrings[n]);
    tw.Write(integers[n]+" ");
}
tw.Write(integers.Length+" "+integerStrings.Length+" ");

在文件 (tw) 中,我打印了所有整数,但integers.LengthandintegerStrings.Length不正确。它们应该是 262,144,但它们都是 41,616。我想不出任何问题。

4

1 回答 1

1

尝试这个:

int dummyInt;
var integers = File.ReadAllText("C:\\temp\\pixels.txt")
                   .Split(new char[] { ' ', '\r', '\n' })
                   .Select(n => (int?)(Int32.TryParse(n, out dummyInt)
                              ? dummyInt
                              : (int?)null))
                   .Where(n => n.HasValue)
                   .Select(n => n.Value)
                   .ToArray();

上面的代码应该给你一个从输入文件中读取的整数数组,用' '换行符分割,并只选择这些可以转换为Int32.

于 2013-05-19T15:16:11.617 回答