Using lambda expression in place of IComparer argument

前端 未结 3 812
余生分开走
余生分开走 2020-12-08 08:57

Is it possible with C# to pass a lambda expression as an IComparer argument in a method call?

eg something like

var x = someIEnumerable.OrderBy(aClas         


        
3条回答
  •  猫巷女王i
    2020-12-08 09:30

    If you're on .NET 4.5, you can use the static method Comparer.Create.

    Documentation: Comparer.Create Method .

    Example:

    var x = someIEnumerable.OrderBy(e => e.someProperty, 
        Comparer.Create((x, y) => x.someProperty > y.SomeProperty ?  1 : x.someProperty < y.SomeProperty ?  -1 : 0)
        );
    

提交回复
热议问题