c# - 如何在 C# 中将函数转换为比较器
问题描述
我必须以这种方式对列表进行排序,所以我必须在变量中使用函数
Func<Elem, Elem, int> w = (elem1, elem2) => DateTime.Compare(elem1.Date, elem2.Date);
list.Sort(w);
如何将函数转换为比较器?
解决方案
您可以使用Comparison<Elem>
类或创建实现的类IComparer<Elem>
list.Sort(new Comparison<Elem>((v1, v2) => DateTime.Compare(v1.Date, v2.Date)));
IComparer 实现
public class ElemComparer : IComparer<Elem>
{
public int Compare(Elem x, Elem y)
{
return DateTime.Compare(x.Date, y.Date);
}
}
使用 ElemComparer
list.Sort(new ElemComparer());
推荐阅读
- firebase - Twitter OAuth request_token:错误代码 32,无法进行身份验证
- java - 询问队列中是否有代理(AnyLogic Simulation)
- python - 继承视图的问题 - Odoo 模块
- list - 如果包含 x 或 -x,如何修改列表列表?
- image - Flutter PUT 来自文件的 HTTP 请求
- php - 仅插入嵌入代码来代替不在 href 中的 url
- reactjs - 添加滑动删除以拖放组件
- python - 如何存储在使用 Python 从 CSV 文件中检索的数据库中
- reactjs - 强制 React 重新渲染使用 React.createElement 创建的子组件
- kubernetes - 多部署规模k8s