次のようなオブジェクトが与えられた場合:
public class Test
{
public int Id { get; set;}
public int Field1 { get; set; }
public int Field2 { get; set; }
}
次のように入力されます。
List<Test> list = new List<Test>();
list.Add( new Test { Id = 1, field1 = 1});
list.Add( new Test { Id = 1, field1 = 2});
list.Add( new Test { Id = 2, field1 = 3});
list.Add( new Test { Id = 2, field1 = 4});
インデックス列を作成し、リストを反復処理できます。
var indexList = list.Select((t, i) => new {t, index = i}).ToList();
foreach (var t in indexList)
{
Console.WriteLine("ID: " + t.t.Id + " ---- Index:" + t.index);
}
そして、次のような結果が得られます。
ID: 1 ---- Index:0
ID: 1 ---- Index:1
ID: 2 ---- Index:2
ID: 2 ---- Index:3
私が本当にやりたいことは、次のような出力が得られるように、各 Id グループのインデックスをリセットすることです。
ID: 1 ---- Index:0
ID: 1 ---- Index:1
ID: 2 ---- Index:0
ID: 2 ---- Index:1
GroupBy で遊んでみましたが、あまり運がありませんでした。
誰かが私を正しい方向に向けることができますか?
ありがとう