的列表中刪除空後,假設我有一個C#自選(這裏稱爲x
)的列表,並且我通過移除空(這裏的新列表稱爲y
)創建一個新的列表C#的結果類型列表中,從自選
static void Main()
{
var x = new List<long?> { 7, 8, 9, null, 10, null, 11 };
var y = x.Where(e => e != null);
Console.WriteLine("{0}", y);
}
然後y
的類型被推斷爲List<long?>
。獲得List<long>
類型的慣用方法是什麼?顯式解包或顯式轉換?或者有更清晰的方法嗎?
在我正在處理的實際實現中,值作爲可選項列表進來,我需要將這些列表轉換爲下游集合,因此「傳遞下降」到後續操作並不是我想要的做(雖然我可以在代碼中稍後做很多很多的空檢查...)。我真的很想有一個long-list的變量。這是如何最好地考慮和處理在C#中?
雖然簡潔,IMO這是一個矯枉過正的事情,因爲它涉及不必要的裝箱和拆箱。 –
@IvanStoev,這是一個非常有用的評論。很難在這個答案之間作出決定,這個答案簡明扼要地說「只留下所有的多數」和Jeroen的答案,這個答案很明確地說明如何將解包值存在它們存在的地方! –
你說的對拳擊是正確的,但對於列表中的例子,我甚至不會去想它。無論如何,你總是可以用'Where-> Select'方法。 –