有一个byte数组如下
byte[] bt = new byte[1000];
我通过某种方式得到了数据存入bt,但是数据不一定有1000b,我怎么样将剩余的数组空间弄掉,只剩下我的数据,前提是我的数据究竟多大我事先不知道,要是知道我也不用申请1000b的空间

解决方案 »

  1.   

    怎么不用arraylist或者list<t>?
      

  2.   

    那个,我做的是网络程序,我的缓冲区只能接收存成byte数组啊,循环的方式能搞定,但是太浪费了
      

  3.   

    byte[] bt = new byte[1000];
    MemoryStream ms;
    while(read(bt)){
    ms.Write(bt);
    }
    bt=ms.ToArray();
      

  4.   

    1000byte也叫浪费?动态分配修改消耗CPU
    浪费点无所谓,现在内存都大。
    1M的内存够你分配1000个这样的数组了。
      

  5.   

    呵呵,程序员对某些问题可不是得过且过的,虽然有时候硬件可以弥补一下软件算法的缺陷,但是...
    假如我的byte数组不是1000B而是1023*1024*100呢,1M的内存只能分10个吧,假如我开20个线程都创建,那结果...这种情况不是假设,现实需求中确实有这方面的问题,不过还是谢谢你们
    问题解决了
      

  6.   

    Array.Resize()
    不过,还是如楼上各位所言,无此必要。
      

  7.   

    楼主的意思是有可能传输100M或更大,而他不可能直接开一个1G的Array
    1000只是一个例子,并不是实际只要这么多