8

このコードを持つ:

   return Enumerable.Repeat<MyClass>(new MyObject
   {   
     Iteration = // Get the current loop index 
   },
   10).ToList<MyClass>();

   public MyClass
   {
     public int Iteration {get;set;}
   }

メソッドIterationを使用してプロパティに現在のループ インデックスを設定するにはどうすればよいですか?Enumerable.Repeat

4

2 に答える 2

14

代わりに使用できますEnumerable.Range

int count = 10;
List<MyObject> objects =  Enumerable.Range(0, count)
     .Select(i => new MyObject { Iteration = i })
     .ToList();
于 2013-10-01T15:25:07.193 に答える
1

現在のアイテムの序数を取得する場合、1 つの方法は、インデックスを公開するSelect オーバーロードを使用することです。次に、匿名型のようなものを作成して、元の列挙型 (この場合はRepeat結果) とインデックスの内容を保持できます。

var repeats = Enumerable.Repeat("Something", 10).Select((s, i) => new { s, i });

foreach (var rep in repeats)
    Console.WriteLine(rep.i + rep.s);

版画:

0Something
1Something
...
9Something

これが何のために必要なのかわかりません。オブジェクトのリストを作成するだけの場合は、Tim の代替案の方が適しています (ただし、理論的にはこれも機能します)。

于 2013-10-01T15:27:16.967 に答える