C# 数组与流

标签 c# arrays performance stream

当编写对可能无限的数据“流”(即字节、字符等)进行操作的函数时,在决定使用字符串/数组还是流作为输入/输出时,有哪些设计考虑因素?

总是编写函数来使用流,然后制作使用流包装器(即 StringReader/Writer)的重载方法来返回“简单数据”,例如不需要处理的数组或字符串等,是否会对性能产生巨大影响?考虑?

我认为对数组进行操作的函数要方便得多,因为您可以“返回”结果数组,而且通常不必担心处置问题。我认为流运算符很好,因为它们可以对无限的数据源进行操作,而且可能还具有内存效率。

最佳答案

如果您正在处理未知大小的二进制数据,请始终使用流。例如,如果可以避免,将整个文件读入字节数组通常是个坏主意。 .Net 中处理二进制数据(例如加密和压缩)的大多数函数都是为使用流作为输入/输出而构建的。

关于C# 数组与流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10474095/

相关文章:

c# - 没有选项卡的 WPF 选项卡控件

java - 搜索数组

javascript - '类型错误: Cannot set properties of undefined (setting '0' )'----Array assignment

java - 遇到数组问题(涉及用户多个输入)?

jquery - 通过性能将事件处理程序附加到 jQuery 中的元素的最佳方法

c# - 键集未定义

c# - 为什么委托(delegate)函数引用在作为参数传递时会被垃圾收集?

c# - 如何在 WPF 中将 ItemsSource 与 ObservableCollection 绑定(bind)

php - 为什么 php 4.3 中的 bcmath 比 php 5+ 快得多?

node.js - 当我启动新进程时,NodeJS fork 进程会减慢所有其他 fork 进程的速度