104 Stimmen

Wie erreicht man "MinOrDefault" in LINQ?

Ich erzeuge eine Liste von Dezimalwerten aus einem LINQ-Ausdruck und möchte den kleinsten Wert, der nicht Null ist. Es ist jedoch durchaus möglich, dass der LINQ-Ausdruck zu einer leeren Liste führt.

Dies führt zu einer Ausnahme, und es gibt kein MinOrDefault, um mit dieser Situation umzugehen.

decimal result = (from Item itm in itemList
                  where itm.Amount > 0
                  select itm.Amount).Min();

Wie kann ich das Ergebnis auf 0 setzen, wenn die Liste leer ist?

0voto

tjgersho Punkte 1
decimal result;
try{
  result = (from Item itm in itemList
                  where itm.Amount != 0
                  select (decimal?)itm.Amount).Min();
}catch(Exception e){
  result = 0;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X