我有这个代码
List<int> input = new List<int>() { 1, 2, 3 };
int output = input.DefaultIfEmpty(-5).FirstOrDefault(x => x == 4);它告诉我“如果没有匹配,请使用值-5”
为什么返回此代码0
发布于 2017-02-07 16:14:16
当input为空时,您的代码将返回-5。
你想做的是
List<int> input = new List<int>() { 1, 2, 3 };
int output = input.Where(x => x == 4).DefaultIfEmpty(-5).FirstOrDefault();但是,您可以按照Dmitry Bychenko's answer中的说明对其进行简化。
发布于 2017-02-07 16:13:55
如果您希望使用4如果input中有Any 4,否则使用-5:
List<int> input = new List<int>() { 1, 2, 3 };
int output = input.Any(x => x == 4) ? 4 : -5;发布于 2017-02-07 16:16:38
我认为问题在于你仍然得到了一个值。试试这个:
int output = input.Where(x => x == 4).DefaultIfEmpty(-5).FirstOrDefault();希望它能帮上忙!
https://stackoverflow.com/questions/42084729
复制相似问题