使用扩展方法对多个条件的List <T>进行流畅排序?

Chr*_*nes 3 c# sorting extension-methods

要按多个条件对List进行排序,我现在正在执行以下操作:

collection.Sort((f1, f2) =>
{
    var comp = f1.FirstCriteria.CompareTo(f2.FirstCriteria);
    return comp != 0 ? comp : f1.SecondCriteria.CompareTo(f2. SecondCriteria);
});
Run Code Online (Sandbox Code Playgroud)

但能做这样的事情不是很好吗:

collection.MultipleSort(f1.FirstCriteria, f2.FirstCriteria)
          .Then(f1.SecondCriteria, f2.SecondCriteria)
Run Code Online (Sandbox Code Playgroud)

有关良好实现流畅界面排序的任何想法?

Gre*_*ech 15

你是说像下面这样的东西?

using System.Linq;

collection.OrderBy(t => t.FirstCriteria).ThenBy(t => t.SecondCriteria);
Run Code Online (Sandbox Code Playgroud)

  • @Hainsey,OrderByDescending和ThenByDescending怎么样? (4认同)