C# でpair をdouble で整列【備忘録】
自作クラスPair
doubleの比較のやり方がわからないので引き算してバブルで書いていた。
扱う件数が300ぐらいになってしまい、バブルがボトルになってしまって辛かったがやり方が見つかった。良かった。
CompareToの使い方を知らなかっただけ、といえばそれまで。
ideoneっていつまで消えないのかしら…
using System; using System.Collections.Generic; public class Test { public static void Main() { var list= new List<Pair<int,double>>(); var random = new Random(); for(int i=0;i<20;i++){ list.Add( new Pair<int,double>(i+1,random.NextDouble())); } foreach(var item in list){ Console.WriteLine("{0}:{1}",item.First,item.Second); } list.Sort((a,b) => a.Second.CompareTo(b.Second)); foreach(var item in list){ Console.WriteLine("{0}:{1}",item.First,item.Second); } } } public class Pair<T, U> { public T First; public U Second; public Pair() { } public Pair(T first, U second) { this.First = first; this.Second = second; } internal object Clone() { return MemberwiseClone(); } }