希望能够提供例如匿名类型的比较函数(即lambdas),以便可以按一组标准对它们进行排序。这可能在C#中吗?
答案 0 :(得分:4)
不,只需改为常规课程。
答案 1 :(得分:0)
Lambda可以隐式转换为System.Comparison`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);
答案 2 :(得分:-2)
是。您必须声明比较函数的类型:
var anon = new {comparator = (Func<string, int>) (s => s.Length)};