我正在玩QuickSort和LINQ,並希望將序列分成項目之前,等於和之後的樞軸。什麼是最好的LINQ方法來過濾一個關鍵點的序列?
這是我到目前爲止有:
public static Tuple<IEnumerable<T>, IEnumerable<T>, IEnumerable<T>> ComparativeWhere<T>(this IEnumerable<T> source, T t)
where T : IComparable<T>
{
return new Tuple<IEnumerable<T>, IEnumerable<T>, IEnumerable<T>>(
source.Where(x => x.CompareTo(t) < 0),
source.Where(x => x.CompareTo(t) == 0),
source.Where(x => x.CompareTo(t) > 0)
);
}
什麼是做到這一點的最好方法是什麼?這是最好的實施,還是有更好的?或者我應該使用我不知道的庫函數?
你應該使用'OrderBy'。 – SLaks 2010-02-23 16:10:35
是的,我相信'OrderBy'是排序的最佳方式。我實際上正試圖在這裏實現'QuickSort'。 – 2010-02-23 16:21:56
我認爲是這樣的...... – SLaks 2010-02-23 16:54:21