結合我有這樣的代碼用法與FirstOrDefault
List<int> input = new List<int>() { 1, 2, 3 };
int output = input.DefaultIfEmpty(-5).FirstOrDefault(x => x == 4);
這對我說:「使用值-5如果沒有匹配」
爲什麼會返回此代碼0
?
結合我有這樣的代碼用法與FirstOrDefault
List<int> input = new List<int>() { 1, 2, 3 };
int output = input.DefaultIfEmpty(-5).FirstOrDefault(x => x == 4);
這對我說:「使用值-5如果沒有匹配」
爲什麼會返回此代碼0
?
你的代碼將返回-5
時input
是空的。
你想什麼做的是
List<int> input = new List<int>() { 1, 2, 3 };
int output = input.Where(x => x == 4).DefaultIfEmpty(-5).FirstOrDefault();
但是,你可以把它簡化爲Dmitry Bychenko's answer規定。
如果你想4
如果有在input
Any
4
和-5
否則:
List<int> input = new List<int>() { 1, 2, 3 };
int output = input.Any(x => x == 4) ? 4 : -5;
謝謝你添加替代解決方案 – Toshi
我認爲問題在於你還在獲得價值。試試這個:
int output = input.Where(x => x == 4).DefaultIfEmpty(-5).FirstOrDefault();
希望它有幫助!
那麼必須輸出什麼? –
我認爲他期待着-5。 – mindOfAi
@MohitShrivastava我期待'-5' – Toshi