Hallo,
also dieses hier:
C#-Code: |
var arInvArea = arInv.Area.FirstOrDefault(p => p != null && p.WithSwimmingPool)?.Select(p => p.Units(ReportDate));
|
ist Schwachsinn, kann nicht funktionieren.
->
C#-Code: |
double? arInvArea = arInv.Area.FirstOrDefault(p => p != null && p.WithSwimmingPool)?.Units(ReportDate);
|
.
dieses:
C#-Code: |
var arInvAreaObject = arInv.Area.FirstOrDefault(p => p != null && p.WithSwimmingPool);
if(arInvAreaObject != null)
{
var arInvArea = arInvAreaObject.Units(ReportDate);
if(arInvArea == wasauchimmer)
{
}
}
|
dagegen liefert ja im Prinzip dasselbe Ergebnis wie vom TE mit dem Unterschied, daß nicht die kompletten Areas durchgeschliffen werden müssen usw...
C#-Code: |
var arInvArea = arInv.Area.Where(p => p.WithSwimmingPool).Select(p => p.Units(ReportDate)).FirstOrDefault();
|
nach dem 'Select' bekommt er ein IEnumerable<double> zurück und nimmt danach einfach den ersten Eintrag.
Bei mir dagegen selektiert er sofort nur den ersten Eintrag und gibt dann das Ergebnis zurück.
Oder hab ich was übersehen?
Klar, der Aufbau ist anders aber geht es nicht um das Ergebnis?
Zumindest wäre mein Gedanke mit dem anderen Aufbau soweit gesehen, daß er den Fehler leichter finden könne...
[Edit1]Hab mal bei mir die Typen laut TE korrigiert, das naming brachte mich ein wenig durcheinander... und ich persönlich mag keine '
var'... ;)[/Edit2]