linq – 传递lambda表达式代替IComparer或IEqualityComparer或任
发布时间:2020-12-14 01:07:18 所属栏目:百科 来源:网络整理
导读:我偶然看到一些代码,这家伙通过lambda表达式到ArrayList.Sort(IComparer这里)或IEnumerable.SequenceEqual(IEnumerable列表,IEqualityComparer这里),其中期望一个IComparer或IEqualityComparer。 我不能确定,如果我看到了,或者我只是在做梦。我似乎不能
我偶然看到一些代码,这家伙通过lambda表达式到ArrayList.Sort(IComparer这里)或IEnumerable.SequenceEqual(IEnumerable列表,IEqualityComparer这里),其中期望一个IComparer或IEqualityComparer。
我不能确定,如果我看到了,或者我只是在做梦。我似乎不能找到任何这些集合接受一个Func<>或其方法签名中的委托。 有没有这样的重载/扩展方法?或者,如果不是,是否有可能像这样,并传递一个算法(读委托)在单方法接口,期望? 更新 还有另一个更新 这里是另一个更新:
我不太确定什么有用的它是真的,因为我认为在大多数情况下,基本库期望一个IComparer有一个重载,期望一个比较…但只是为了记录:
在.Net 4.5中,他们添加了一个方法来从比较获得一个IComparer: 所以你可以传递你的lambda到它,并获得一个IComparer。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |