比较asp.net

时间:2017-03-18 17:16:40

标签: c# asp.net

如何比较asp.net中的两个字符串意味着我们可以比较两个字符串,如==>

if(Path.GetExtension(fileupload1.FileName).ToLower() == ".png" || Path.GetExtension(fileupload1.FileName).ToLower() == ".jpeg")

但有没有办法做到这一点,就像我想做那样的事情=>

if((Path.GetExtension(fileupload1.FileName).ToLower()) == ".png" || ".jpeg")

但是它给了我一个错误。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

if(new String[] { ".png", ".jpeg" }.Contains(Path.GetExtension(fileupload1.FileName).ToLower()))
{
    Console.WriteLine("found");
}
else
{
    Console.WriteLine("not found");
}

答案 1 :(得分:0)

private static readonly string[] _validExtensions = {".jpg",".png"}; 

public static bool IsImageExtension(string ext)
{
        return _validExtensions.Contains(ext);
}

并像

一样使用它
var ext = Path.GetExtension(fileUpload1.FileName);
 if (IsImageExtension(ext){

  }

答案 2 :(得分:0)

你不能像这样“链接”||。您必须在第一个示例中执行相似操作,或者使用一些LINQ来完成它。

var fileTypes = new List<string> { ".png", ".jpeg" };
var ext = Path.GetExtension(fileUpload1.FileName);
if (fileTypes.Any(e => e.Equals(ext, StringComparison.OrdinalIgnoreCase))){
      //something here
}

这比Contains更有优势,因为你可以做一个不区分大小写的匹配(不需要将所有内容规范化为大写或小写)。

或者你可以将StringComparer传递给Contains的重载,它带有一个Equality Comparer。

var fileTypes = new List<string> { ".png", ".jpeg" };
var ext = Path.GetExtension(fileUpload1.FileName);
if (fileTypes.Contains(ext, StringComparer.OrdinalIgnoreCase)){
      // do stuff here
}