Können wir ||
innerhalb ternären Zustand haben?
Ja, Sie können. Aber in der Art, wie Sie es getan haben, ist die ||
zwischen
row["Total Serviceable Offers"].ToString() == "a"
, ein boolescher Ausdruck, und "b"
, ein String-Ausdruck. Deshalb kompiliert dein Code nicht.
Sie können es in Contains
oder Any
Ausdruck ändern, oder eine Hilfsmethode erstellen, wenn es mehr Vergleiche gibt, als was Ihr Codeausschnitt zeigt.
Hier sind einige Möglichkeiten, um Ihren Ausdruck zu umschreiben:
new[]{"a", "b"}.Contains(row["Total Serviceable Offers"].ToString()) ? "0" : "c";
new[]{"a", "b"}.Any(s => s == row["Total Serviceable Offers"].ToString()) ? "0" : "c";
IsAorB(row["Total Serviceable Offers"].ToString()) ? "0" : "c";
...
bool IsAorB(string s) {
return s == "a" || s == "b";
}
Nur nicht ... Die lange Hand-Version wird mit @Liam viel besser lesbar – Liam
vereinbart werden. Sobald du eine zweite Bedingung hineinwirfst, vereitelt du irgendwie den Zweck der Verwendung von Kurzschrift für die Einfachheit. –
@DangerZone Ich stimme der Hälfte zu, ich habe das Gefühl, dass ein ternäres System in Ordnung ist, wenn zwei Bedingungen als "oder" dargestellt werden, aber wenn Sie ein "else" verwenden, dann verliert es seinen Zweck –