0

現在、3つのモデルクラスがあります。

public class MarketReport
{
    public MarketReportAbbrStores LISTOFSTORESUMMARY {get; set;}

}

public class MarketReportAbbrStores : List<AbbrStore>
{
    public AbbrStore abbrStore  { get; set; }
}

    public class AbbrStore
{
    public string StoreName { get; set; }
    public int MemberCount { get; set; }
    public int LeaderCount { get; set; }
    public int ActivistCount { get; set; }
}

今、私は上記を正しく行っているかどうかわかりませんが、MarketReport内のリストにデータを入力したいと思います

        foreach (var store in stores)            
        {

            AbbrStore abbrstore = new AbbrStore();
            abbrstore.StoreName = store;
            marketInformation.LISTOFSTORESUMMARY.Add(abbrstore);
            //ERROR: Object reference not set to an instance of an object.
        }
4

1 に答える 1

3

ここでいくつか間違っている:

  1. あなたのLeadersタイプはListそれ自体です-単一のエンティティを記述しているので、これはコレクションタイプであってはなりません。Leader
  2. leaderlistPascalCaseを使用する必要があります-Leaders
  3. leaderlistMarketReportはインスタンスプロパティであるため、そのリストへの入力を開始するには、をインスタンス化する必要があります
  4. leaderlistList<Leader>コレクションタイプが定義されていない場合は、を指定する必要があります(1を参照)。
  5. List<T>の新しいインスタンスを追加するために使用する必要があるAddメソッドがありますLeader
  6. リストへの追加を開始する前に、新しいリストをインスタンス化してLeadersプロパティに割り当てる必要があります

提案された変更:

public class Leader
{
   public string Name { get; set; }
   public string Precinct { get; set; }
}

public class MarketReport
{
   public List<Leader> Leaders { get; set }
}

this.Leaders = new List<Leader>();
foreach (var store in stores)
{
    var leader = new Leader { ... };
    this.Leaders.Add(leader);
}
于 2012-11-02T22:57:18.723 に答える