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

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

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

by Guest » 05 Feb 2025, 12:48

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.

Top