gpt4 book ai didi

c# - 传递给函数的条件语句

转载 作者:太空宇宙 更新时间:2023-11-03 17:59:46 24 4
gpt4 key购买 nike

我正在使用以下函数调用:

var filesfound = filterSplit.SelectMany(
filter => folder1.GetFiles(
filter,
SearchOption.AllDirectories
)
);


我想在其中放置一个条件语句,该语句将根据特定条件将 SearchOption.AllDirectories更改为 SearchOption.TopDirectoryOnly(是否选中了一个复选框)

有没有办法做到这一点? (我不能将整个声明放入if语句中,即使else选项仍在声明它,因为它不允许我说filesfound不存在...)

最佳答案

如果只想使用条件作为表达式,则使用三元/条件运算符

m_checkBox.Checked ? SearchOptions.TopDirectoryOnly : SearchOption.AllDirectories


完整样本

var filesfound = filterSplit.SelectMany(filter => folder1.GetFiles(
filter,
m_checkBox.Checked
? SearchOptions.TopDirectoryOnly
: SearchOption.AllDirectories));


我在您的问题中注意到的另一件事是您尝试使用条件语句块来包装表达式。尽管无需声明即可解决此问题,但在某些情况下使用声明更为自然。在这些情况下,将语句移到lambda中通常比包围语句更容易。

var filesfound = filterSplit.SelectMany(filter => 
{
if ( m_checkBox.Checked ) {
return folder1.GetFiles(filter, SearchOptions.TopDirectoryOnly);
} else {
return folder1.GetFiles(filter, SearchOptions.AllDirectories);
}
});

关于c# - 传递给函数的条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3205777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com