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的语法糖,我不必重复被比较的变量或相等运算符?
只需创建一个新的内联数组并调用Contains:
if((new[]{ ".pdf", ".doc"}).Contains(fileExtension))
{
// Do Something
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |