我有一個對象的集合,按對象的字段值進行排序。目前的問題是訂單取決於業務邏輯。LINQ委託代序
public enum Order : byte {
a = 1,
b = 2,
c = 3
}
public class Foo{
public long A {get;set;}
public long B {get;set;}
public long C {get;set;}
}
public class Worker(){
private Foo[] orderFoos(Foo[] foos, Func<Order, long> sort){
return foos.OrderByDescending(f => sort(f)).ToArray(foos.Length);
}
public void Work(){
Foo[] foos = getFoos();
var orderByA = orderFoos(foos, f => f.A);
var orderByB = orderFoos(foos, f => f.B);
var orderByC = orderFoos(foos, f => f.C);
}
}
編譯器會報錯Argument 1: cannot convert from 'Foo' to 'Order'
。是否有任何解決方法或解決方案?
不'Foo.A','Foo.B'和'Foo.C'持有什麼樣的價值觀? – NtFreX
@NFFRX'''long''',它在Foo類聲明中提及。 – Max
我知道什麼值,而不是什麼類型。我問,因爲我不明白你想做什麼。 – NtFreX