Enum.IsDefined एक स्ट्रिंग ले जाएगा जिसमें एनम वैल्यू का नाम होगा। केवल कुरूपता आप File.Extension के बंद अग्रणी अवधि पट्टी करने के लिए है कि है और यह केस संवेदी है:
Enum.IsDefined(typeof(FileExtension), file.Extension.Substring(1).ToLower())
संपादित करें: एक्सटेंशन विधि अच्छाई अपने वांछित वाक्य रचना के करीब पाने के लिए: निजी तौर पर
IEnumerable<string> GetNames(this Type t) {
if (!t.IsEnum) throw new ArgumentException();
return Enum.GetNames(t);
}
typeof(FileExtensions).GetNames().Any(e=>e.ToString().Equals(file.Extension));
, हालांकि , मैं अभी भी IsDefined मार्ग के बजाय:
bool IsDefined(this Type t, string name) {
if (!t.IsEnum) throw new ArgumentException();
return Enum.IsDefined(t, name);
}
typeof(FileExtension).IsDefined(file.Extension);
स्रोत
2008-11-30 01:22:41
आप सही हैं: पी –
इसके लिए 'System.Linq' का उपयोग करने की आवश्यकता है, सही? –