タイプPersonのリストがあります。人のリストを作成すると、以前のリスト要素の情報が現在の情報に置き換えられます。これが静的クラス変数の問題であると読んだことがありますが、私の属性はどれも静的ではありません。
class Person{
private string _name;
private string _address;
public string Name{
get{ return _name;}
set { _name = value;}
public string Address{
get{ return _address;}
set { _address = value;}
}
}
ファイルから人を読み取り、文字列の配列に保存します。配列が正しいことを確認するためにステップスルーしました。です。
ここで奇妙になります:
string[] personArray;
Person tempPerson = new Person();
List<Person> people = new List<Person>();
foreach (string line in lines)//lines are the people from file, it is correct
{
personArray = line.Split(',');
if (personArray.Length == 2)
{
tempPerson.Name = personArray[0];
tempPerson.Address = personArray[1];
people.Add(tempPerson);
}
}
コードをステップ実行すると、1 人目が適切に追加され、2 人目が追加されて調べられ、両方とも 2 人目の情報を持っています。add ステートメントの後まで、すべてが正しく見えます。