C# 从文本文件读取整数时出现意外的值数

C# 从文本文件读取整数时出现意外的值数,c#,C#,我正在将文本文件中的整数读入int数组,因此我使用以下代码。但它似乎没有读入预期的整数数: string fileContent = File.ReadAllText("D:\\pixels.txt"); TextWriter tw = new StreamWriter("D:\\print.txt"); string[] integerStrings = fileContent.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEn

我正在将文本文件中的整数读入
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+" ");
string fileContent=File.ReadAllText(“D:\\pixels.txt”);
TextWriter tw=新的StreamWriter(“D:\\print.txt”);
string[]integerStrings=fileContent.Split(新字符[]{''},StringSplitOptions.RemoveEmptyEntries);
int[]integers=新的int[integerStrings.Length];
for(int n=0;n
在文件(tw)中,我打印了所有整数,但是
integers.Length
integerStrings.Length
不正确。他们应该是262144,但他们都是41616。 我想不出任何问题。

试试这个:

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

的值。为什么不使用正则表达式来执行此操作?似乎这正是他们的目的。@Yatrix似乎文件只是由空格分隔的数字。当一个简单的
拆分
就可以了,正则表达式就太过分了。你从哪里得到这个数字
262144
$wc-w../pixels.txt 41616../pixels.txt
@AnaZlateva当你的程序完全按照你的命令运行时,你难道不喜欢它吗?:)您应该避免在没有为OP解释其组成部分的情况下发布像这样密集的代码墙。我已经对其进行了重新格式化,使其易读。