Sorun, Linq ile ilgisi yoktur. double
ve double?
/Nullable<double>
arasında dönüşüm yapılması gerekir.
double
için
double?
den
örtük dönüştürme izin verilmez: Nullable<T>
null ise (Bu NullReferenceException
atacağım
double? foo ;
double bar = foo.Value ;
:
double? foo ;
double bar = foo ;
double? foo ;
double bar = (double) foo ;
Yine, bir istisna elde edersiniz.
Sen Nullable<T>
boşsa varsayılan bir değer atamak için boş kaynaştırma operatörünü kullanabilirsiniz:
double? foo ;
double bar = foo ?? -1.0 ;
Bu natch, NullReferenceException` sorunu önler.
double? foo ;
double bar ;
if (foo.HasValue)
{
doSomething(foo.Value) ;
}
else
{
doSomething() ;
}
: Eğer alternatif bir yol takip etmek düzenli koşullu mantığı kullanabilirsiniz, Nihayet
double? foo ;
double bar = (foo.HasValue ? foo.Value : -2) ;
:
Sen boş kaynaştırma operatörü olarak aynı damarda üçlü operatörünü kullanabilirsiniz
Bunlar seçenekler hakkında. Hangisi doğru? Dunno. Bağlamınıza göre değişir.
Bu gerçekten LINQ ile ilgisi yok. NULL değerler ile uğraşmak için daha genel bir SO araştırması düşünün. –
Gerçek kodu gerçek hata mesajıyla birlikte göndermelisiniz. Lütfen ne yapmaya çalıştığını tahmin etmeyin. – Gabe