【C#】ソート時のインデックスが欲しい
C#でソートを行い、ソートした時のインデックスも欲しい時に以下で取得できることが分かったのでメモします。
var list = new List<int>() { 3, 2, 1 }; var sorted = list.Select((x, i) => new KeyValuePair<int,int>(x, i)) .OrderBy(x => x.Key); foreach (KeyValuePair<int,int> kv in sorted) { // Keyにソートされた値、Valueに元のインデックスが入ります Console.WriteLine(kv.Key + " " + kv.Value); }