加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:20:44 所属栏目:百科 来源:网络整理
导读:我经常发现自己写的条件类似于以下内容: if(Path.GetExtension(filename) == ".pdf" || Path.GetExtension(filename)== ".doc"){ // do something} 每个我想测试的文件扩展名调用Path.GetExtension()一次似乎有点多余.当然,我可以这样做: string fileExten
我经常发现自己写的条件类似于以下内容:

if(Path.GetExtension(filename) == ".pdf" || Path.GetExtension(filename)== ".doc")
{
    // do something
}

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

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

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

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

SELECT file FROM table WHERE fileExtension IN(".pdf",".doc")

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

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

解决方法

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

if((new[]{ ".pdf",".doc"}).Contains(fileExtension))
{
    // Do Something
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读