柿食えば 屁をしても一人

電気系の学生のブログ。何を書くかも決めていない

C# でpair をdouble で整列【備忘録】

自作クラスPairをdoubleでソートしたいと思っていたが、
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();
        }
    }