2016-04-10 18 views
0

arrylistをform2に定義し、コンストラクタを使用してフォーム3に送信します。しかし、私は、内部配列のサイズをユーザー定義する必要があります。 どうすればこのことをやりますか?C#arraylistに含まれる配列のサイズを定義する

今のところこのように見えますが、動作しません。

private void bCapturar2_Click(object sender, EventArgs e) 
{ 
    int k=0; 
    k=int.Parse(textBox1.Text); 
    ((paciente)Datos[i]).num_asist = k; 
    lAsistentes.Visible = true; 
    tbNom_Asist.Visible = true; 
    ((paciente)Datos[i]).asistentes = new string[((paciente)Datos[i]).num_asist]; 
    bCapturar2.Visible = false; 
} 
+0

asistentesがArrayListであると仮定すると、stringの配列がArrayListのサブクラスではないので意味があります。「暗黙のうちに型 'string []'を 'System.Collections.ArrayList'に暗黙的に変換できません。あなたは何を達成しようとしていますか? – derloopkat

+1

リストが導入されて以来、ArrayListはあまり使われていないことに注意してください。 – NPSF3000

答えて

1

あなたはasistentesはArrayListのがある

var tenItemArrayList = new ArrayList(10); 

場合、あなたはまだ能力そのように値を変更することができます宣言であなたのArrayListのための容量を設定することができます...

((paciente)Datos[i]).asistentes.Capacity = ((paciente)Datos[i]).num_asist; 

しかし、新しい容量は現在の容量より小さくすることはできません。それ以外の場合は、例外が発生します。

+0

Asistentesは、arraylist内に含まれる文字列の配列で、asistentesサイズはユーザーが決定します。 –

+0

事前に容量を設定すると、ArrayListの効率が向上します。容量を超えてアイテムを追加し続けると、それでも機能しますが、コレクション全体が毎回コピーされて生成されます。 – derloopkat

関連する問題