我正在从文本文件中读取整数到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.Length
和integerStrings.Length
不正确。他们应该是262,144,但他们都是41,616。
我想不出任何问题。
答案 0 :(得分: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
的这些值。