byte[] data = new byte[1024 * 64];如果data中只有32k的数据,那么其余的32k就会被填充进0字符,
data.Length 也是 1024 * 64
如何把这些空的字符串去掉,data.Length为实际的1024 * 32 而不是上面的64k呢?多谢
data.Length 也是 1024 * 64
如何把这些空的字符串去掉,data.Length为实际的1024 * 32 而不是上面的64k呢?多谢
//byte[] data = new byte[1024 * 64];这样之后大小应该不能改变了吧
你把你内存弄成32k的不就行了
或者这样:(一正经我就想加冒号)
不要声明byte【】
直接给它赋值
比如
byte[]data=encoding.ascii.getbytes("color wolf");
byte[] bs = new byte[] { 0, 1, 2, 3, 4, 5, 6 };
List<byte> blist = new List<byte>();
blist.AddRange(bs);
blist.RemoveAll(b => b == 0);
MessageBox.Show(blist.Count.ToString());
Array.Copy(data,tmp,tmp.Length);
data=tmp;