次のように宣言するリストがあります。
List<Person> persons = new List<Person>();
コードの別の部分では、LINQ クエリを使用してリストを初期化および入力し、xml ファイルからデータを取得します。ここで注意することはあまり重要ではありません。知っておくべき唯一のことは、リストが初期化され、データが入力されていることを確認することです。
コードの別の部分では、WCF サービスを使用して、リスト内の人を検索し、関連データを取得します。以下のコードでは、変数ret
がこのデータを保持しています。
ServiceClient client = new ServiceClient();
MyService.Person p = new MyService.Person();
for (int i = 0; i < persons.Count; i++)
{
p.PersonID = persons[i].PersonID;
p.FName = persons[i].FName;
p.LName = persons[i].LName;
var ret = client.GetFees(new MyService.Person[] { p });
for (int j = 0; j < ret[0].Fees.Length; j++)
{
persons[i].Fees[j] = ret[0].Fees[j].Amount;
}
}
client.Close();
私がやりたいことは、ret 変数からAmountデータを取得し、それをすべて person リストの料金属性に割り当てることです。上記のコードでは、これは次の行で行われます。
persons[i].Fees[j] = ret[0].Fees[j].Amount;
問題は、その行で Visual Studio からこのエラーが発生し続けることです。
- NullReferenceException は処理されませんでした
人物リストオブジェクトの Fees 配列属性が初期化されていないなどの関係があると思います。
リスト プロパティを持つクラス Person の person オブジェクトがある場合は、次のように初期化します。
Person p = new Person();
p.Fees = new List<double>();
しかし、ここではそうではありません。それで、この状況で私は何をしますか?persons[i].Fees[j] = ret[0].Fees[j].Amount;
つまり、 null参照例外をスローしないように修正するにはどうすればよいですか??
最終的な目標は、個人リストの料金属性で料金データを取得して、後で OrderBy メソッドを使用してリストをソートできるようにすることです。しかし、今のところ、このエラーを取り除く必要があります。
読んでくれてありがとう。助けてください。