可能性の重複:
C#: Is there a way to resize an array of unknown type using reflection?C#は未知のタイプの配列のサイズを変更
こんにちは、
が未知の型の配列のサイズを変更する方法はありますか?以下のサンプルコードをご覧ください。object ReadArray()
{
Type classType = Type.GetType(arrayItemName, true);
object arr = Array.CreateInstance(classType, 0); // unknown length
// read length from a stream
ResizeArray(ref arr, length)
// populate array items from stream
// read length2 from stream2
ResizeArray(ref arr, length+length2)
// populate array items from stream2
return arr;
}
ResizeArray(ref object array, int n)
{
Array arr = array as Array;
Array.Resize(ref arr, n); // compile error! type can't be inferred
array = arr;
}
あなたがそれにアイテムを追加するときに自動的にリサイズされます '一覧を'使用して考えがあります? –
私はそのポストを見ました、それはリストを使用するか、毎回新しい配列インスタンスを作成することを示唆しています。私はもっと良い解決策があるのだろうかと思っています。私はAPIを書いており、呼び出し側は配列を期待しています。 – dlsou
はい、提案されたソリューションは毎回新しい配列インスタンスを作成します。しかし、 'Array.Resize'もそうです。唯一の違いは、提案されたソリューションが明示的にそれを行うのに対して、Array.Resizeは裏でそれを行う点です。 –