C# - Array: Reihenfolge Von Absteigend, einschließlich der null-Werte
Ich habe ein array von (immer 4) Objekte, die ich brauche, um in absteigender Wert eines Objekt-member.
Ich hatte gedacht, um es als
Array = Array.OrderByDescending(p => p.Val)
Dieser fiel um, wenn einer der Werte null war, natürlich. Also was ich Strebe, aber meine LINQ ist nicht bis zu, ist:
Array = Array.OrderByDescending(p => if( p != null ) p.Val; else float.MinValue)
Wie kann ich erreichen das die Bestellung ohne diese zu löschen und später wieder neu hinzufügen der null-Wert? Vielen Dank für Ihre Hilfe.
- Ich bin verwirrt, Array ist der name der Variablen oder der name? Könnte man diese vermeiden?
- Ich denke, es ist eine Eigenschaft, aber ist schlecht benannt (gelinde gesagt)!
- Namen wurden geändert, für die Privatsphäre, und (dachte ich) Lesbarkeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwendung der ternären Bedingungsoperator:
Pro die Kommentare unten, der Grund, warum Sie nicht verwenden können, die
if/else
ist, weil der Körper des lambda-Ausdrucks (das Zeug auf der rechtenp =>
) muss ein Ausdruck sein, es sei denn, Sie umgeben die ganze Sache mit den geschweiften Klammern. So veranschaulichen Sie könnte auch die Verwendung derif/else
wenn Sie wollte:Aber deutlich Ausführlicher.
Ich bin mir nicht sicher, welche Objekte/Typen, mit dem Sie arbeiten, aber vielleicht versuchen Sie einen ternary-operator wie folgt:
Verwenden Sie diesen operator: