Entwickler-Ecke

Basistechnologien - OrderBy() ungültige Werte nach unten verschieben


C# - Di 25.03.14 17:54
Titel: OrderBy() ungültige Werte nach unten verschieben
Hey,

gibt es eine Möglichkeit "ungültige" Werte bei einer OrderBy() Operation an das Ende einer Liste zu verschieben, statt an den Anfang. Konkret geht es hier um double-Werte.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
case SortMode.ByTextAsDouble:
          items = sortingOrder == SortOrder.Descending
            ? items.OrderByDescending(a =>
            {
              double d;
              return double.TryParse(a.Text, out d) ? d : double.NaN;
            }).ToList()
            : items.OrderBy(a =>
            {
              double d;
              return double.TryParse(a.Text, out d) ? d : double.NaN;
            }).ToList();
          break;


Sollte ein String nicht nach double castbar (gibts das Wort überhaupt :D ?) sein gebe ich einfach den Wert double.NaN weiter. Diese landen aber am Anfang der Liste und ich hätte sie gerne am Ende. Kennt da jemand eine Möglichkeit ohne die Liste nochmal nachträglich bearbeiten zu müssen?


Ralf Jansen - Di 25.03.14 17:59

Anstatt NaN bei Descending double.MinValue und im anderen Fall double.MaxValue verwenden.


C# - Di 25.03.14 18:06

:autsch: Perfekt danke