![]() |
1
1373
这真的取决于你是否可以信任
和。NET 4及更高版本,我会使用
也许我应该解释一下为什么我的答案比其他人长。
上述方法将继续读取(并复制到
看见 this article 了解更多信息(以及替代实现)。 |
![]() |
2
809
虽然Jon的答案是正确的,但他正在重写中已经存在的代码
|
![]() |
3
121
只是想指出,如果你已经有了一个MemoryStream
此外,如果您正在处理未知或不同子类型的流,您可以收到
|
![]() |
4
72
|
![]() |
5
55
只有我的几分钱。..我经常使用的做法是将这样的方法组织为自定义助手
将命名空间添加到配置文件中,并在任何地方使用它 |
![]() |
6
21
您可以简单地使用MemoryStream类的ToArray()方法,例如-
|
![]() |
7
14
您甚至可以通过扩展使其更加美观:
然后将其称为常规方法:
|
![]() |
8
8
Bob(即提问者)的代码在编译时出错。流。长度为长,而BinaryReader为长。ReadBytes接受一个整数参数。就我而言,我不希望处理的Streams足够大,需要很长的精度,所以我使用了以下方法:
|
![]() |
9
8
如果有人喜欢,这里有一个。NET 4+版本的解决方案作为扩展方法形成,没有对MemoryStream进行不必要的Handle调用。这是一个微不足道的优化,但值得注意的是,未能处理MemoryStream并不是真正的失败。
|
![]() |
10
4
将两个投票最多的答案合并到一个扩展方法中:
|
![]() |
11
4
上面的那个没问题……但当你通过SMTP发送东西时,你会遇到数据损坏(如果你需要的话)。我已更改为其他有助于正确逐字节发送的内容: '
|
![]() |
12
4
创建一个辅助类,并在任何你想使用它的地方引用它。
|
![]() |
13
3
在名称空间RestSharp中。那里有ReadAsBytes方法的扩展。此方法内部使用MemoryStream,与本页某些示例中的代码相同,但当您使用RestSharp时,这是最简单的方法。
|
![]() |
14
2
如果流支持Length属性,则可以直接创建字节数组。优点是
同样值得注意的是,数组不能大于int.MaxValue。
根据流是否支持查找在两个版本之间切换的完整代码。它包括以下检查
|
![]() |
15
0
这是我正在使用、测试和运行良好的功能。 请记住,在读取之前,'input'不应为null,'input.position'应重置为'0',否则将中断读取循环,并且无法读取任何内容以转换为数组。
|
![]() |
16
-2
由于这个答案没有现代(即异步)版本,这是我为此目的使用的扩展方法:
优化是基于以下事实
source code for
|
![]() |
17
-7
您可以使用此扩展方法。
|