当我设置一个默认值,如果设置为空,并呼吁.FirstOrDefault()
与不满足我没有收到我的默认值的条件,但类型的默认值:FirstOrDefault返回意外值
int[] list = { 1, 2, 3, 4, 5 };
Console.WriteLine(list.DefaultIfEmpty(1).FirstOrDefault(i => i == 4)); // Outputs 4, as expected
Console.WriteLine(list.DefaultIfEmpty(1).FirstOrDefault(i => i > 5)); // Outputs 0, why??
这似乎很不直观,因为我将.DefaultIfEmpty()
设置为1.为什么不输出1?
整数的默认值(因为没有找到)是一个0. –
为什么不用我使用'.DefaultIfEmpty'设置的值,因为没有返回的值符合条件? –
因为'DefaultIfEmpty'适用于'list'而不是结果。 – Romoku