Ich habe eine Liste von benutzerdefinierten Typ -Carddetails .
Code: Select all
List cards;
< /code>
carddetails.cs enthält Attribute von Karten wie folgt. < /p>
public Class CardDetails {
public int cost;
public int name;
public int power;
// and so on
}
if(sortByName.isOn) { // sortByName is a UI toggle and isOn returns true if it is checked
var sortedCards = cards.OrderBy(card => card.name);
}
else if(sortByCost.isOn) {
var sortedCards = cards.OrderBy(card => card.cost);
}
// And so on
< /code>
Und es funktioniert gut, aber ich möchte keine große wenn auch eine Leiter. Carddetails werden in einer Zukunft viele Attribute haben und ich möchte hier nicht auf das Skript zurückkehren und die Bedingungen anhängen. Daher habe ich mich gefragt, ob es einen besseren Weg ist, dies zu erreichen? < /p>
// this will be updated based on sort parameters like name, cost etc
string fieldName;
var sortedCards = cards.OrderBy(card => card.GetType().GetField(fieldName));
< /code>
funktioniert jedoch nicht wie beabsichtigt, es gibt nur die ursprüngliche Liste aus irgendeinem Grund zurück. Alle Hilfe oder Zeiger werden geschätzt.
Thanks.