2017-10-22 11 views
-1

私はコードの2つのスニペットを含んでいます、最初は間違っています、2番目は正しいです。私はそれがさらなる説明のために有益かもしれないことを理解していると思うが、私はなぜ新しいSeriesDataクラスを作成したのか、混乱していた。結局のところ、私は明らかに2つの新しいゲーム、右のリストと新しいシリーズを追加しましたか?リストの理解と何を学びましたか?

public class SeriesData 
{ 
    // ReSharper disable once FieldCanBeMadeReadOnly.Global 
    public List<Series> DivisionSeries; 

    public SeriesData() 
    { 
     this.DivisionSeries = new List<Series> 
     { 
      new Series 
      { 
       HomeSeries = new List<Game>(), 
       AwaySeries = new List<Game>() 
      } 
     }; 

     this.DivisionSeries.ToList().Add(new Series { HomeSeries = new List<Game> { new Game(), new Game() } }); 
    } 
} 

...そして、ことわざの電球が経つと、私が実現し、私が見ていた空のシリーズは、コンストラクタ内でインスタンス化1、およびDivisionSeries.ToList(に私のその後の添加した)の結果新しいリストと割り当てられていない/再割り当てされていないリスト

public class SeriesData 
{ 
    // ReSharper disable once FieldCanBeMadeReadOnly.Global 
    public List<Series> DivisionSeries; 

    public SeriesData() 
    { 
     this.DivisionSeries = new List<Series> 
     { 
      new Series {HomeSeries = new List<Game> {new Game(), new Game()}}, 
      new Series {AwaySeries = new List<Game> {new Game(), new Game(), new Game()}} 
     }; 
    } 
} 

誰かが私がここで学んだことをより完全に説明するほど親切でしょうか?

そして、より良いまだ:

public class SeriesData 
{ 
    // ReSharper disable once FieldCanBeMadeReadOnly.Global 
    public List<Series> DivisionSeries; 

    public SeriesData() 
    { 
     this.DivisionSeries = new List<Series> 
     { 
      new Series {Games = new List<Game> {new Game(), new Game()}, SeriesType = Schedule.SeriesType.Home}, 
      new Series {Games = new List<Game> {new Game(), new Game(), new Game()}, SeriesType = Schedule.SeriesType.Away} 
     }; 
    } 
} 
+0

それは既に私にはおそらくHomeSeries、AwaySeriesは必要ないでしょう:リストゲームとSeriesTypeの列挙型:Home、Away。 – Steve

+0

あなたの実際の質問は何ですか? – Jonesopolis

+0

@ Jonesopolisなぜ最初のコードスニペットが空のクラスになったのですか?私の前提は正しいのですか? – Steve

答えて

1

私はあなたがなぜ最初のコードスニペットはそれに2つのアイテムを持っDivisionSeriesにならない、

を求めていると思います

あなたはDivisionSeriesに1つの項目を追加:

this.DivisionSeries = new List<Series> 
    { 
     new Series 
     { 
      HomeSeries = new List<Game>(), 
      AwaySeries = new List<Game>() 
     } 
    }; 

を、あなたがDivisionSeries.ToList()を呼び出し、ことに項目を追加します。

:これは同じです

this.DivisionSeries.ToList().Add(new Series { HomeSeries = new List<Game> { new Game(), new Game() } }); 

var temp = this.DivisionSeries.ToList(); 
temp.Add(new Series { HomeSeries = new List<Game> { new Game(), new Game() } }); 

tempは、新しいオブジェクトへの参照です。このオブジェクトには、DivisionSeriesという項目が設定されています。しかし、その時点でtempDivisionSeriesは2つの別個の参照であり、1つのアイテムの追加/削除は他のものとは無関係です。

ここでの修正はコールを削除することです。DivisionSeriesはすでにList<>です。

関連する問題