我知道以前有人问过这个问题,但我似乎无法用我读过的答案来解决这个问题。我有一个 CSV 文件 ~ 1.2GB,如果我像 32 位一样运行进程,我会得到 outOfMemoryException,如果我将它作为 64 位进程运行它就可以工作,但它仍然需要 3.4GB 的内存,我知道我在我的 customData 类中存储了很多数据,但仍然有 3,4gb 的内存?,我在读取文件时做错了什么吗?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);
}