我试图在条件中检查字符串列表的值,而不是为每个或计数器循环创建一个字符串。
例如
string extention = Path.GetExtension(attachment.Name).ToLower();
List<string> validExtentions = new List<string>() { ".tif", ".tiff", ".gif", ".jpeg", ".jif", ".png", ".pdf", ".txt", ".jpg" };
if(extention.Contains(validExtentions))
{
}
我以为我可以使用.contains
函数,该函数期望字符串不是字符串列表,因此它不起作用。
答案 0 :(得分:3)
您只需要翻转变量即可。您检查extension
列表中是否包含validExtensions
:
if(validExtensions.Contains(extension))
{
}
答案 1 :(得分:0)
这个怎么样....
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
namespace EasyE
{
class Program
{
static void Main(string[] args)
{
// Test strings
List<extention> extentions = new List<extention>() {
new extention { FileName = "File1.jif" },
new extention() { FileName = "File2.TIFF" },
new extention() { FileName = "File3.txt" } };
///////////////
Regex regex = new Regex(@"^.*\.(tif|tiff|gif|jpeg|jif)$",RegexOptions.IgnoreCase);
if ((from ext in extentions where (ext.FileName.ToString() == regex.Match(ext.FileName.ToString()).Value) select ext).Count() > 0)
{
}
}
}
class extention
{
public string FileName { get; set; }
}
}