なんか動きがおかしいので、デバッグしていたら、以下の様なことがわかった。
int numOfFoo = 3; // newが1回だけ実行され、その結果が3回使われる。 // コレクションの要素数は3だが、全て同じインスタンスが入っている。 var listX = Enumerable.Repeat(new Foo(), numOfFoo).ToList(); // newが3回実行される。 // コレクションの要素数は3で、別々のインスタンスが入っている。 var listO = Enumerable.Range(0, numOfFoo).Select((x) => new Foo()).ToList();
配列の初期化にRepeatを使っていたので、同じように書いたらダメダメだった。
気をつけよう。
0 件のコメント:
コメントを投稿