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.LengthintegerStrings.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 に答える