字节集合与java中的ByteBuffer类似
我需要一个类似于Java的ByteBuffer的C#实现。 感兴趣的方法 – .remaining() – 返回当前位置和限制之间的元素数量。 – .array() – .clear() – .put(byte [],int,int)
我开始使用MemoryStream
…但是没有clear()
和很多即兴创作此外,我在Koders上找到了ac#implementation: http : //www.koders.com/csharp/fid2F8CB1B540E646746D3ADCB2B0AC867A0A8DCB06.aspx ?s=socket#L2。我将使用..但也许你们知道更好的东西
MemoryStream
可以做你想做的一切:
-
.array()
=>。.ToArray()
-
.clear()
=>。.SetLength(0)
-
.put(byte[], int, int)
=>.Write(byte[], int, int)
-
.remaining()
=>.remaining()
.Length - .Position
如果需要,可以为Clear
和Remaining
创建扩展方法:
public static class MemoryStreamExtensions { public static void Clear(this MemoryStream stream) { stream.SetLength(0); } public static int Remaining(this MemoryStream stream) { return stream.Length - stream.Position; } }
MemoryStream应该包含您要查找的所有内容。 结合BinaryWriter编写不同的数据类型。
var ms = new MemoryStream(); ms.SetLength(100); long remaining = ms.Length - ms.Position; //remaining() byte[] array = ms.ToArray(); //array() ms.SetLength(0); //clear() ms.Write(buffer, index, count); //put(byte[], int, int)
你在找Queue
吗?
http://msdn.microsoft.com/en-us/library/7977ey2c.aspx
对于Queue不支持的某些方法,编写包装Queue的自定义类可能很容易。