Python 2 (文字列は基本的にバイトのリスト) から変換されたアプリケーションがあり、文字列を便利なバイト バッファーとして使用しています。
このコードの一部を Boo 言語 (Python に似た構文、.NET で実行) で書き直しており、文字列には ASCII、UTF-8 などの固有のエンコーディング タイプがあることがわかりました。 bytes は (明らかに) 固定長のバイト配列を指し、扱いが非常に厄介です。
明らかに文字列からバイトを取得できますが、一部の文字を複数のバイトに拡張したり、127を超えるバイトを破棄/変更したりするリスクがあります。これは問題なく、この理由を完全に理解しています-しかし、私にとって何が便利でしょうか(a) 文字列を便利なバイト バッファーとして使用できるように、文字の変換または破棄を保証しないエンコーディング、または (b) 文字列クラスの利便性を提供するある種の ByteString クラスのいずれかです。(理想的には、後者の方がハックとは思えないためです。) これらのいずれかが既に存在しますか? (または、実装するのは簡単ですか?)
私は System.IO.MemoryStream を認識していますが、毎回それらのいずれかを作成し、最後に ReadToEnd() にアクセスするためだけに System.IO.StreamReader を作成する必要があるという見通しはあまり効率的ではないようです。これは、パフォーマンスが重要なコードにあります。
(答えがそこにも当てはまる可能性が高いと感じたので、これを C# としてタグ付けしたこと、および C# ユーザーが考えられる解決策について良い考えを持っていることを誰も気にしないことを願っています。)
編集: System.Text.StringBuilder も発見しました-再び、バイトにそのようなものはありますか?