如何比较asp.net中的两个字符串意味着我们可以比较两个字符串,如==>
if(Path.GetExtension(fileupload1.FileName).ToLower() == ".png" || Path.GetExtension(fileupload1.FileName).ToLower() == ".jpeg")
但有没有办法做到这一点,就像我想做那样的事情=>
if((Path.GetExtension(fileupload1.FileName).ToLower()) == ".png" || ".jpeg")
但是它给了我一个错误。任何人都可以帮助我吗?
答案 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
}