c# - ToArray() 函数限制

标签 c# arrays toarray

我正在使用 .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/

相关文章:

node.js - MongoDB toArray 性能

c# - 将命令绑定(bind)到 ListView 项目 MVVM 正确的方式

c# - 在 Blazor 中的 Page 和 NavMenu 之间交换数据

c# - Unity c# 触发另一个 GameObject 的方法。更好的方法?

c - 根据均值的接近度对数组进行排序

.net - 数组与列表的性能

在 C 中复制一个带有字符串成员的结构

c# - 字典 .Values 和 .Keys 到数组(顺序相同)

scala - Scala中如何使用 'toArray()'将栈转为数组?

c# - 从字符串中提取子字符串到 C# 中的定界符的最快方法是什么?