2010-12-02 5 views
0

54は重要ではありません。ArrayList.GetRange(0,54).ToString()は "System.Collections.ArrayList + Range"を返しています

ArrayListには、byte[] return_value = (byte[])this.in_buffer.ToArray(typeof(byte))(及びin_bufferAddRange(byte[] bytes)で満たさArrayList型である)ArrayList.AddRange(return_value)

なぜ中に充填されていますか?私はtypeof(byte)の部分を書かなかった。私は今それについて読んで行くつもりです。同様のものを利用する必要がありますか?これを書いている間、この可能性は私に起こりました。

+0

.ToString()を使用したときに期待したことは何ですか? .ToString()のデフォルトの実装では、オブジェクトのタイプが表示されます。この場合、オブジェクトはArrayList.Range型であるという事実を表示しています。 –

+2

また、.NET 1.1を使用していない限り、ArrayListを使用しないでください。任意のオブジェクトを含むことができるコレクションが必要な場合は 'List 'を、それ以外の場合は 'List 'を使います。 'T'はコレクションに入れるオブジェクトの型です。 –

+1

コードブロックとして書いておけば、あなたの例は*ずっと*簡単になるでしょう。 –

答えて

0

ArrayList.GetRangeが実際にArrayList内にネストされRangeと呼ばれるArrayListのサブクラスを、返すことによって実現され、それがすべてです。 ToStringはそのタイプの名前を表示しています。

あなたは何を期待していましたか?

+0

arrayList内のバイトを連結した文字列。それを手動で行う必要がありますか? – paIncrease

+0

@ Rancur3p1c:まあ、あなたはString.Joinを使うことができます... –

1

System.ObjectのToStringメソッドは、デフォルトで型の名前を返します。したがって、配列の値は返されません。あなたが探していたと思います。

0

System.Collections.ArrayListには、ArrayListから派生したRangeというネストされたクラスが含まれています。これはGetRangeによって返される型ですが、ArrayListとして公開されています。返される文字列の一部は、ネストされた型を示します。+

関連する問題