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 - .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<T>
ですか?
http://msdn.microsoft.com/en-us/library/7977ey2c.aspx
Queue がサポートしていないメソッドの一部については、Queue をラップするカスタム クラスを簡単に作成できる場合があります。