如何将字符串转换为枚举值到整数? [复制]
Posted
技术标签:
【中文标题】如何将字符串转换为枚举值到整数? [复制]【英文标题】:How do I convert a string to an enum value to an integer? [duplicate] 【发布时间】:2012-04-30 03:38:08 【问题描述】:可能重复:How do I Convert a string to an enum in C#?Enums returning int value
我已经声明了一个枚举:-
public enum Car
SELECT = 0,
AUDI = 1,
NISSAN = 2,
HONDA = 3,
LINCOLN = 4
现在我需要它匹配的 enum 的 int 值:-
private int GetCarType(string CarName)
foreach(var item in Enum.GetNames(typeof(Car))
if (item.ToLower().Equals(CarName.ToLower()))
//return int value of Enum of matched item; ???????
预期结果:-
int i = GetCarType(CarName); //suppose CarName is AUDI, it should return 1;
Console.write(i);
Result :- 1
我将如何获得枚举的值?以及更好的编码实践。
【问题讨论】:
注意你的套管。遵循 C# 约定。 msdn.microsoft.com/en-us/library/ms229045.aspx @Paul:我看到了你链接的那个问题。我的不是重复的。它与您链接的内容不同。 【参考方案1】:var result = (int)System.Enum.Parse(typeof(Car), carName)
http://msdn.microsoft.com/en-us/library/essfb559.aspx
这将替换您的 GetCarType
函数。您不再需要遍历枚举名称。
【讨论】:
【参考方案2】:如果要将字符串转换为枚举,则应使用 Enum.Parse 而不是遍历名称。
然后只转换为整数:
var iAsInteger = (Int32)i;
【讨论】:
你的意思是string to enum
?【参考方案3】:
int i = (int) Enum.Parse(typeof(Car), "AUDI");
【讨论】:
是的,3 分钟。我打字很慢:-)【参考方案4】:只需将您的枚举转换为 int like
int i=(int)Car.Audi;
这会给你 1
int i=(int)Car.Select;
这会给你0
【讨论】:
首先你必须匹配..我不知道 CarName 的值是什么.. @user1327064 你不知道吗?我没有得到你 @DevJob:罗伯特哈维回答了我的问题。你的不适合.. @user1327064 我很高兴马克的回答帮助您将其标记为答案,这将有助于同行以上是关于如何将字符串转换为枚举值到整数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章