C#でプログラムを作成しています。
C#
1// サンプルデータ格納クラス 2private class data_sample 3{ 4 public string data1 { get; set; } 5 public string data2 { get; set; } 6} 7 8List<data_test> SampleList = new List<data_test>();
このように定義したリストに対して、
C#
1data_sample sample; 2sample = new data_sample(); 3 4//データセット 5sample.data1 = (ここになんらかのデータをセット); 6sample.data2 = (ここになんらかのデータをセット); 7 8//リストに追加 9SampleList.Add(sample);
このようにデータをセットしているのですが、何故か追加するたびに、全てのデータが、最後に追加したデータに上書きされたようになってしまいます。
例えば、最初に
C#
1//データセット 2sample.data1 = "aaa"; 3sample.data2 = "111"; 4 5//リストに追加 6SampleList.Add(sample);
このようにデータをセットすると、SampleListには、data1に"aaa"、data2に"111"がセットされるのですが、その後、
C#
1//データセット 2sample.data1 = "bbb"; 3sample.data2 = "222"; 4 5//リストに追加 6SampleList.Add(sample);
とすると、SampleListの配列は2つになるのですが、data1は2つとも"bbb"、data2は2つとも"222"になってしまい、最初にAddした、"aaa"と"111"は無くなってしまいます。
その後、例えばもうひとつデータを追加して、
C#
1//データセット 2sample.data1 = "ccc"; 3sample.data2 = "333"; 4 5//リストに追加 6SampleList.Add(sample);
とすれば、配列数は3つになりますが、データは3つとも最後に追加したデータになってしまいます。
なぜこのようになってしまうのか、それがわかりません。
どうして、このような事になってしまうのでしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/18 14:06