この質問が以前に尋ねられたことは知っていますが、読んだ回答ではうまくいかないようです。私はCSVファイルを持っています〜1.2GB 、32ビットのようにプロセスを実行している場合、outOfMemoryExceptionを取得します。64ビットプロセスとして実行すると機能しますが、それでもメモリに3.4GBかかります。 customData クラスに大量のデータを格納していますが、まだ 3.4GB の RAM が残っていますか? ファイルを読み取るときに何か問題がありますか? dict は、その列に応じて、何かを保存するプロパティへのマッピングを持っている辞書です。正しい方法で読んでいますか?
StreamReader reader = new StreamReader(File.OpenRead(path));
while(!reader.EndOfStream) {
String line = reader.ReadLine();
String[] values = line.Split(';');
CustomData data = new CustomData();
string value;
for (int i = 0; i < values.Length; i++) {
dict.TryGetValue(i, out value);
Type targetType = data.GetType();
PropertyInfo prop = targetType.GetProperty(value);
if(values[i]==null)
{
prop.SetValue(data, "NULL",null);
}
else
{
prop.SetValue(data, values[i], null);
}
}
dataList.Add(data);
}