DefaultIfEmpty与FirstOrDefault结合使用

时间:2017-02-07 08:10:51

标签: c# linq

我有这段代码

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

它告诉我“如果没有匹配则使用值-5”

为什么要返回此代码0

3 个答案:

答案 0 :(得分:3)

input为空时,您的代码将返回List<int> input = new List<int>() { 1, 2, 3 }; int output = input.Where(x => x == 4).DefaultIfEmpty(-5).FirstOrDefault();

您想要做的是

{{1}}

但是,您可以按Dmitry Bychenko's answer中所述简化它。

答案 1 :(得分:2)

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

import requests, bs4

r = requests.get('http://apps.mmc.gov.my/searchmmc/main_search.php?action=detail&id=10000')
soup = bs4.BeautifulSoup(r.text, 'lxml')
for tr in soup.select('tr table tr[valign="bottom"]'):
    print(tr.get_text(strip=True))

答案 2 :(得分:0)

我认为问题是你仍然有价值。试试这个:

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

希望它有所帮助!