gpt4 book ai didi

c# - 使用 lambda 表达式代替 IComparer 参数

转载 作者:IT王子 更新时间:2023-10-29 03:46:28 24 4
gpt4 key购买 nike

C# 是否可以在方法调用中将 lambda 表达式作为 IComparer 参数传递?

例如类似的东西

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

我无法完全编译它,所以我猜不会,但 lambda 和匿名委托(delegate)之间的协同作用似乎如此明显,我觉得我一定是在做一些愚蠢的错误。

TIA

最佳答案

如果您使用的是 .NET 4.5,则可以使用静态方法 Comparer<aClass>.Create .

文档: Comparer<T>.Create Method .

例子:

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

关于c# - 使用 lambda 表达式代替 IComparer 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16839479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com