Java の ByteBuffer に似たものを C# で実装する必要があります。対象となるメソッド - .remaining() - 現在の位置と制限の間の要素数を返します。- .array() - .clear() - .put(byte[], int, int)
私は..で何かを始めMemoryStreamましたが、いいえclear()、そして多くの即興もまた、私はKodersでac#の実装を見つけました:使用します..しかし、多分あなたたちはもっと良いものを知っています
Java の ByteBuffer に似たものを C# で実装する必要があります。対象となるメソッド - .remaining() - 現在の位置と制限の間の要素数を返します。- .array() - .clear() - .put(byte[], int, int)
私は..で何かを始めMemoryStreamましたが、いいえclear()、そして多くの即興もまた、私はKodersでac#の実装を見つけました:使用します..しかし、多分あなたたちはもっと良いものを知っています
MemoryStreamあなたが望むすべてを行うことができます:
.array()=>.ToArray().clear()=>.SetLength(0).put(byte[], int, int)=>.Write(byte[], int, int).remaining()=>.Length - .PositionClear必要に応じて、およびの拡張メソッドを作成できます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<T>ですか?
http://msdn.microsoft.com/en-us/library/7977ey2c.aspx
Queue がサポートしていないメソッドの一部については、Queue をラップするカスタム クラスを簡単に作成できる場合があります。