internal class TListSort<_T> : List<_T>, IComparer<_T> { private Func<_T, _T, int> __func; public TListSort(Func<_T, _T, int> _f1) { __func = _f1; } public new void Sort() { Sort(this); } int IComparer<_T>.Compare(_T x, _T y) { return __func(x,y); } }
上記のような感じで作っておくと自由にソートが設定できる。
利用方法
static void Main(string[] args) { var _list_sort = new TListSort<int>((int x, int y) => { return (x > y) ? 1 : -1;//ここでSortしたい内容を書く //return (x < y) ? 1 : -1;//逆ソートしたい場合 }) { 3, 4, 32, 1 ,100, 2}; _list_sort.Sort(); foreach (var _i in _list_sort) { Console.WriteLine("list = {0}", _i); } Console.WriteLine("end"); }