2

私はC#が初めてで、ループを使用する以外に、テキストボックスからバイト配列の特定の開始点にテキスト文字列をコピーする方法を見つけることができないようです。

自分ができるということがわかっている:

  var myBuffer = new byte[20];
  myBuffer = ASCIIEncoding.ASCII.GetBytes(textBox.Text);

しかし、たとえば4番目のバイトなど、配列内のオフセットでテキストを開始するにはどうすればよいですか:

 starting at myBuffer[3], copy textBox.Text;   // Representation of what I need

エレガントなソリューションはありますか?

4

2 に答える 2

3

はい、洗練された解決策があります: method の 5 つの引数のオーバーロードを使用しますGetBytes

ASCIIEncoding.ASCII.GetBytes(textBox.Text, 0, 17, myBuffer, 3);

最初の 3 つの引数は、文字列、エンコードを開始する文字列へのオフセット、およびエンコードする文字数を指定します。最後の 2 つの引数は、書き込み先の配列と、書き込みを開始するオフセットを提供します。

于 2013-09-03T02:35:03.840 に答える
0

次のように部分文字列を使用します

var myBuffer = new byte[20];
myBuffer = ASCIIEncoding.ASCII.GetBytes(textBox.Text.Substring(3));
于 2013-09-03T02:32:52.317 に答える