これは私のコードの一部です。
List<DateTime>[] newarraydate1 = new List<DateTime>[70];
DateTime temp1 = arraydate1[k][aa];
newarraydate1[k].Add(temp1);
私は messagebox.show(temp1) を使用しましたが、temp1 に値があります。エラーは、プログラムの最初の行に表示されます。
配列を作成するときは、それを含む構造のみを作成します。そのメンバーはデフォルト値に初期化されList<DateTime>
ますnull
。基本的にnull
、それぞれが のリストを保持できる 70 の参照を取得しますDateTime
。
これを修正するには、ループで新しい配列を割り当てる必要があります
List<DateTime>[] newarraydate1 = new List<DateTime>[70];
for (int i = 0 ; i != newarraydate1.Length ; i++) {
newarraydate1[i] = new List<DateTime>();
}
またはLINQを使用します:
List<DateTime>[] newarraydate1 = Enumerable
.Range(0, 70)
.Select(n => new List<DateTime>())
.ToArray();
の配列を宣言していますが、List<DateTime>
その配列内に List の実際のインスタンスを作成することはありません。次のようにコードを変更する必要があります。
List<DateTime>[] newarraydate1 = new List<DateTime>[70];
for(int i=0;i<70;i++)
newarraydate1[i]=new List<DateTime>();
DateTime temp1 = arraydate1[k][aa];
newarraydate1[k].Add(temp1);