【发布时间】:2010-02-10 02:09:32
【问题描述】:
我基本上有一个枚举
public enum WorkingDays
{
Monday, Tuesday, Wednesday, Thursday, Friday
}
并想与输入进行比较,该输入恰好是一个字符串
//note lower case
string input = "monday";
我能想到的最好的东西就是这样的
WorkingDays day = (from d in Enum.GetValues(typeof(WorkingDays)).Cast<WorkingDays>()
where d.ToString().ToLowerInvariant() == input.ToLowerInvariant()
select d).FirstOrDefault();
有没有更好的办法?
编辑:感谢 Aaron 和 Jason。但是如果解析失败怎么办?
if(Enum.IsDefined(typeof(WorkingDay),input))//cannot compare if case is different
{
WorkingDay day = (WorkingDay)Enum.Parse(typeof(WorkingDay), input, true);
Console.WriteLine(day);
}
【问题讨论】:
-
请参阅msdn.microsoft.com/en-us/library/kxydatf9.aspx 了解可以抛出的异常。
标签: c# .net linq enums iqueryable