fork download
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. public class Test
  6. {
  7. public static void Main()
  8. {
  9. List<TestItem> list = new List<TestItem>();
  10. list.Add( new TestItem { Id = 1, Field1 = 1});
  11. list.Add( new TestItem { Id = 1, Field1 = 2});
  12. list.Add( new TestItem { Id = 2, Field1 = 3});
  13. list.Add( new TestItem { Id = 2, Field1 = 4});
  14.  
  15. var indexList = list
  16. .GroupBy(item => item.Id)
  17. .SelectMany(grp => grp
  18. .Select((t, index) => new { index = index, t }));
  19.  
  20.  
  21. foreach (var t in indexList)
  22. {
  23. Console.WriteLine("ID: " + t.t.Id + " ---- Index:" + t.index);
  24. }
  25. }
  26. }
  27.  
  28. public class TestItem
  29. {
  30. public int Id { get; set;}
  31. public int Field1 { get; set; }
  32. public int Field2 { get; set; }
  33. }
  34.  
Success #stdin #stdout 0.05s 34152KB
stdin
Standard input is empty
stdout
ID: 1 ---- Index:0
ID: 1 ---- Index:1
ID: 2 ---- Index:0
ID: 2 ---- Index:1