io fondamentalmente ho un enumLINQ & enumerazioni come IQueryable
public enum WorkingDays
{
Monday, Tuesday, Wednesday, Thursday, Friday
}
e vorrei fare un confronto contro un ingresso, che risulta essere una stringa
//note lower case
string input = "monday";
La cosa migliore che potevo venire con era qualcosa di simile
WorkingDays day = (from d in Enum.GetValues(typeof(WorkingDays)).Cast<WorkingDays>()
where d.ToString().ToLowerInvariant() == input.ToLowerInvariant()
select d).FirstOrDefault();
C'è un modo migliore per farlo?
Modifica: Grazie Aaron & Jason. Ma cosa succede se l'analisi fallisce?
if(Enum.IsDefined(typeof(WorkingDay),input))//cannot compare if case is different
{
WorkingDay day = (WorkingDay)Enum.Parse(typeof(WorkingDay), input, true);
Console.WriteLine(day);
}
Vedi http://msdn.microsoft.com/en-us/library/kxydatf9.aspx per le eccezioni che possono essere lanciate. – dugas