2016-02-11 55 views
0

我想檢查條件中的字符串列表的值,爲每個或計數器循環創建一個。如何檢查條件語句中的字符串值列表

對於實例

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函數期待一個字符串不串的列表,以便它不會工作。

回答

3

你只需要翻轉你的變量。你檢查,如果你的extension包含的validExtensions名單內:

if(validExtensions.Contains(extension)) 
{ 

} 
+0

你應該考慮的變量外殼?也許'validExtentions.Contains(擴展,StringComparer.CurrentCultureIgnoreCase)'? –

+0

@ roryap - 可能,但OP沒有提到他們需要擔心案件。如果他們這樣做,使用「Contains」的重載是一件小事。 –

+0

我降低了字符串擴展中的情況= Path.GetExtension(attachment.Name).ToLower(); – EasyE

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; } 
} 
} 
相關問題