枚举:需要将枚举的名称,而不是其int值作为字符串

J B*_*min 3 c# enums

我有一个包含一大堆值的枚举(这里只显示了三个):

public enum LookupType
{
   Alignment,
   Language,
   ReEmbedBehavior
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个基于名为LookupType的varchar字段获取数据的方法...我想要的是将此方法的调用者限制为仅限于数据库中的查找类型...所以在我的WHERE子句的末尾,我想要将枚举名称作为字符串,而不是它的整数值.

然后,调用者将执行类似GetLookupsByLookupType(LookupType.Language)的操作,我的方法将调用为"where lookuptype ='Language'"

public List<Lookup> GetLookupsByLookupType(UnicornMedia.Core.DomainModel.Enumerations.LookupType lookupType)
        {
            var lookups = new List<Lookup>();
            string SQL = String.Format(@"Select id, name, value, lookuptype
                                         from lookups
                                         where lookuptype = '{0}'", lookupType.ToString());

            ...<snip>...                                         
        }
Run Code Online (Sandbox Code Playgroud)

这可能是一些简单的事情,但我似乎不时碰到这个,而不是弄清楚,我最终只是使用一个字典...无论如何,它就是,谢谢

F.B*_*ate 8

只需执行.ToString()就可以将枚举名称作为字符串值.