条件取决于数组的值

时间:2017-05-16 16:25:40

标签: c#

假设我有一个像这样的动态数组:

string[] documentsContentTypes = {".pdf",".docx",".xls"};

现在我想用它来为if语句添加条件。

最后,if将是这样的:

if(Path.GetExtension(postedFile.FileName).ToLower() != ".pdf" && Path.GetExtension(postedFile.FileName).ToLower() != ".docx" && Path.GetExtension(postedFile.FileName).ToLower() != ".xls")
return false;

我想确保如果扩展名不是这些,则该函数将返回false。

我怎么能做到这一点?感谢

2 个答案:

答案 0 :(得分:3)

您的意思是想要查看扩展名是否在内容类型列表中?

var extension = Path.GetExtension(postedFile.FileName).ToLower();

if(documentsContentTypes.Contains(extension))
{
  // yay!
}

如果扩展名在那里,则返回true;如果不是,则返回false:

var extension = Path.GetExtension(postedFile.FileName).ToLower();

return documentsContentTypes.Contains(extension); // true if exists, false otherwise

答案 1 :(得分:0)

明确的方法在下面这样做。但@ DigiFriend的原因是IMO更具可读性。

bool doIt = true;
foreach (string type in documentsContentTypes)
{
    if (Path.GetExtension(postedFile.FileName).ToLower() == type)
    {
        doIt = false;
        break;
    }
}

if (doIt)
{
    // do something interesting
}