[英]C# executing code using condition ? method call : method call
我正在嘗試根據使用條件添加到一個列表或另一個列表中? :
? :
語法,這在c#中可能嗎,我使用的語法無法編譯
List<int> Negatives = new List<int>();
List<int> Positives = new List<int>();
foreach (int number in numbers)
{
(number >= 0) ? Negatives.Add(number) : Positives.Add(number);
}
條件運算符對一個表達式或其他表達式求值以計算值。 它不執行void返回方法。
不過,您可以在此處使用條件運算符來確定要添加到的列表:
(number >= 0 ? positives : negatives).Add(number);
或者更清楚地:
var listToAddTo = number >= 0 ? positives : negatives;
listToAddTo.Add(number);
當然,您也可以使用LINQ來取樂:
// This replaces the whole code
var lookup = numbers.ToLookup(x => x >= 0);
var positives = lookup[true].ToList();
var negatives = lookup[false].ToList();
甚至更嚴格地說:
var lookup = numbers.ToLookup(Math.Sign);
var positives = lookup[1].ToList();
var zeroes = lookup[0].ToList();
var negatives = lookup[-1].ToList();
條件表達式的結果和替代必須具有值; 無效返回方法沒有任何價值。
使用if
語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.