[英]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
4
在input
和-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.