Penso che in questo caso non ci siano problemi con le parentesi.
Il problema è con il tipo di InvTotal
, se si scrive var InvTotal =....
tutto andrà bene.
Spiegazione di Maarten risposta:
In C# non possiamo scrivere qualcosa di simile:
Error: "Cannot implicitly convert type 'int' to 'bool'"
C# non è:
int x = 2;
var tmp = x ? "W" : "N";
Se proviamo, avremo l'errore seguente C++ dove zero indica valori falsi e non zero indica true.
modo da poter scrivere qualcosa di simile:
g.Sum(d => d.Field<double>("Total")) < 0 ? "W" : "N"
si può anche avere operatori logici multipli senza parentesi nella prima sezione del operatore ternario:
g.Sum(d => d.Field<double>("Total")) < 0 && 1 == 1 && 2 != 4 && 9 != 0 ? "W" : "N";
il tipo di 'InvTotal' è? – kmatyaszek