8

Java の ByteBuffer に似たものを C# で実装する必要があります。対象となるメソッド - .remaining() - 現在の位置と制限の間の要素数を返します。- .array() - .clear() - .put(byte[], int, int)

私は..で何かを始めMemoryStreamましたが、いいえclear()、そして多くの即興もまた、私はKodersでac#の実装を見つけました:使用します..しかし、多分あなたたちはもっと良いものを知っています

4

3 に答える 3

33

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;
    }
}
于 2012-04-09T19:31:42.553 に答える
3

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)
于 2012-04-09T19:32:59.070 に答える
-4

をお探しQueue<T>ですか?

http://msdn.microsoft.com/en-us/library/7977ey2c.aspx

Queue がサポートしていないメソッドの一部については、Queue をラップするカスタム クラスを簡単に作成できる場合があります。

于 2012-04-09T19:11:55.253 に答える