Gibt es eine elegantere Möglichkeit, NULL-fähige Ints hinzuzufügen?
Muss ich hinzufügen, eine Vielzahl von Variablen vom Typ nullable int. Ich verwendet den null-coalescing operator, um es bis auf eine variable pro Zeile, aber ich habe das Gefühl, es ist ein präziser Weg, dies zu tun, z.B. kann ich keine Kette, diese Aussagen irgendwie zusammen, ich habe gesehen, dass zuvor in der anderen code.
using System;
namespace TestNullInts
{
class Program
{
static void Main(string[] args)
{
int? sum1 = 1;
int? sum2 = null;
int? sum3 = 3;
//int total = sum1 + sum2 + sum3;
//int total = sum1.Value + sum2.Value + sum3.Value;
int total = 0;
total = total + sum1 ?? total;
total = total + sum2 ?? total;
total = total + sum3 ?? total;
Console.WriteLine(total);
Console.ReadLine();
}
}
}
InformationsquelleAutor der Frage Edward Tanguay | 2010-08-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese stützt sich auf die
IEnumerable<Nullable<Int32>>
überlastung derEnumerable.Summe
Methode, die sich so verhält, wie man es erwarten würde.Wenn Sie eine Standard-Wert, der nicht gleich null ist, können Sie tun:
oder die Kurzform:
var total = nums.Sum(i => i ?? myDefaultValue);
InformationsquelleAutor der Antwort Ani
etc.
InformationsquelleAutor der Antwort Albin Sunnanbo
Nur eine Antwort auf die Frage ganz direkt:
Diese Weise sind die Aussagen "Ketten" zusammen, wie gebeten, mit der a +
InformationsquelleAutor der Antwort user230910
diese Weise können Sie so viele Werte, wie Sie möchten.
InformationsquelleAutor der Antwort devnull
Wie über Helfer-Methode -
IMO, nicht sehr elegant, aber zumindest fügen Sie so viele zahlen wie Sie wollen, in einem gehen.
InformationsquelleAutor der Antwort VinayC
Könnten Sie tun,
InformationsquelleAutor der Antwort Brian Rasmussen
Wie wärs einfach ersetzen
(sumX ?? 0)
fürsumX
in der entsprechenden null-Ausdruck?InformationsquelleAutor der Antwort Martin Liversage
Einfachste, eleganteste Verwendung von LINQ:
Benötigen Sie verbinden sich AFAIK um sicherzustellen, dass das Ergebnis null ist nicht zulässig.
InformationsquelleAutor der Antwort ChrisSmith..zzZZ