我正在使用 .ToArray()
方法将我的字符串转换为 char
数组,其大小我一直保持 char[] buffer = new char[1000000 ];
但当我使用以下代码时:
using (StreamReader streamReader = new StreamReader(path1))
{
buffer = streamReader.ReadToEnd().ToCharArray();
}
// buffer = result.ToArray();
threadfunc(data_path1);
缓冲区的大小固定为 8190,即使在使用 .ToCharArray()
或 .ToArray()
后它没有读取整个文件。
.ToCharArray()
或 .ToArray()
有大小限制的原因是什么?就好像我不使用这个函数一样,我能够以字符串格式读取整个文件,但是当尝试使用这个函数将它转换为 char 数组时,我遇到了大小限制。
最佳答案
我的猜测是问题在于读取结束应该在您调用 ToCharArray()
之前完成。这可能对你有帮助。您不需要定义缓冲区,因为 ToCharArray()
会创建 char[]
本身的新实例。
string content;
using (StreamReader streamReader = new StreamReader(path1))
{
content = streamReader.ReadToEnd();
}
var buffer = content.ToCharArray();
关于c# - ToArray() 函数限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42479944/