簡體   English   中英

DefaultIfEmpty與FirstOrDefault結合使用

[英]Usage of DefaultIfEmpty combined with FirstOrDefault

我有這個代碼

List<int> input = new List<int>() { 1, 2, 3 };
int output = input.DefaultIfEmpty(-5).FirstOrDefault(x => x == 4);

它對我說:“如果沒有匹配項,則使用值-5”

為什么返回此代碼0

input為空時,您的代碼將返回-5

您想做的是

List<int> input = new List<int>() { 1, 2, 3 };
int output = input.Where(x => x == 4).DefaultIfEmpty(-5).FirstOrDefault();

但是,您可以按照Dmitry Bychenko的答復中所述簡化它。

如果你想4 ,如果有Any 4input-5否則:

List<int> input = new List<int>() { 1, 2, 3 };
int output = input.Any(x => x == 4) ? 4 : -5;

我認為問題在於您仍在獲得價值。 嘗試這個:

int output = input.Where(x => x == 4).DefaultIfEmpty(-5).FirstOrDefault();

希望能幫助到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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