C#语法糖类似于SQL的IN比较?

And*_*ler 3 c# syntactic-sugar

我经常发现自己写的条件类似于以下内容:

if(Path.GetExtension(filename) == ".pdf" || Path.GetExtension(filename)== ".doc")
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

每个我想测试的文件扩展名调用Path.GetExtension()一次似乎有点多余.当然,我可以这样做:

string fileExtension = Path.GetExtension(filename);
if(fileExtension == ".pdf" || fileExtension == ".doc")
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

但考虑到我只使用fileExtension进行比较而没有别的,声明文件扩展名的变量似乎并不优雅.

在SQL中,我可以使用IN运算符:

SELECT file FROM table WHERE fileExtension IN(".pdf", ".doc")
Run Code Online (Sandbox Code Playgroud)

这让我可以毫不重复地进行测试.

C#是否提供类似于SQL的语法糖,我不必重复被比较的变量或相等运算符?

Jus*_*ner 8

只需创建一个新的内联数组并调用Contains:

if((new[]{ ".pdf", ".doc"}).Contains(fileExtension))
{
    // Do Something
}
Run Code Online (Sandbox Code Playgroud)