Gibt es eine bessere Möglichkeit, eine Liste mit benutzerdefiniertem Typ in C#zu sortieren? [Duplikat]C#

Ein Treffpunkt für C#-Programmierer
Guest
 Gibt es eine bessere Möglichkeit, eine Liste mit benutzerdefiniertem Typ in C#zu sortieren? [Duplikat]

Post by Guest »

Szenario
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
}
In der UI habe ich eine Sortier- und Filteroptionen mit einer Reihe von Toggles/Optionsschaltflächen eingerichtet. folgt. < /p>
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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post