是否有可能将方法附加到c#匿名类型



希望能够为匿名类型提供例如比较函数(即使用lambdas),以便它们可以根据一组标准进行排序。这在c#中可能吗?

不,只是创建一个普通类。

可能相关:c#匿名类可以实现接口吗?

lambda可以隐式地转换为System。比较"1:

var anons = (new[] {new {a = 3}, new {a = 4}, new {a = 2}}).ToList();
anons.Sort((x, y) => (x.a - y.a));

您还可以使用LINQ OrderBy扩展方法对匿名类型进行排序。

var anons = new[] {new {a = 3}, new {a = 4}, new {a = 2}};
var sorted = anons.OrderBy(s => s.a);

是。必须声明比较函数的类型:

var anon = new {comparator = (Func<string, int>) (s => s.Length)};

相关内容

  • 没有找到相关文章

最新更新