Ich habe eine Auflistung von Objekten, die nach dem Feldwert eines Objekts sortiert werden. Das aktuelle Problem ist, dass die Reihenfolge von einer Geschäftslogik abhängt.LINQ-Reihenfolge nach Delegat
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);
}
}
Compiler wirft einen Fehler, dass Argument 1: cannot convert from 'Foo' to 'Order'
. Gibt es Workarounds oder Lösungen?
Welche Werte haben 'Foo.A',' Foo.B' und 'Foo.C'? – NtFreX
@NtFreX '' 'long''', wird es in Foo-Klasse Erklärung erwähnt. – Max
ich welche Werte und nicht welche Typen. Ich frage, weil ich nicht wirklich verstehe, was Sie versuchen zu tun. – NtFreX