簡體   English   中英

C#使用條件執行代碼? 方法調用:方法調用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM