相关疑难解决方法(0)

如何将一个流的内容复制到另一个流?

将一个流的内容复制到另一个流的最佳方法是什么?有没有标准的实用方法?

c# stream copying

511
推荐指数
3
解决办法
28万
查看次数

数组的大小是否受int的上限(2147483647)约束?

我在做一些项目欧拉练习,我碰到一个场景,我已经想这比2,147,483,647(上限更大的阵列int在C#).

当然这些是大型阵列,但是,例如,我不能这样做

// fails
bool[] BigArray = new BigArray[2147483648];

// also fails, cannot convert uint to int
ArrayList BigArrayList = new ArrayList(2147483648); 
Run Code Online (Sandbox Code Playgroud)

那么,我可以拥有更大的阵列吗?

编辑:你知道,这是阿特金筛子,所以我只想要一个非常大的:D

c# arrays int integer-overflow

6
推荐指数
3
解决办法
8577
查看次数

流读C#的变化?

我已经看过这个代码示例 - 从Stream读入缓冲区:

byte[] buffer = new byte[1024 * 32];
int bytesRead;

while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
{
    //...
}
Run Code Online (Sandbox Code Playgroud)

但是看第二个参数stream.Read(..,0,..)缓冲区从零开始的字节偏移量,开始存储从当前流中读取的数据.

那么每次偏移是0吗?谁说它不会覆盖这些索引的数据?

恰恰相反:我也看到了这个例子:

 int read, offset = 0;
     while(count > 0 && (read = source.Read(buffer, offset, count)) > 0) {
        offset += read;
        count -= read;
    }
Run Code Online (Sandbox Code Playgroud)

所以这里的偏移量在每次读数后都会被抵消(这对我来说似乎更合乎逻辑)

但我必须遗漏一些东西:

我的观察是对的吗?我什么时候应该使用每个案例?

NB,我的pov是网络流:发送文件.

.net c# stream

0
推荐指数
1
解决办法
133
查看次数

标签 统计

c# ×3

stream ×2

.net ×1

arrays ×1

copying ×1

int ×1

integer-overflow ×1