C# 在集合中组合两个枚举以获取其中一个值

C# 在集合中组合两个枚举以获取其中一个值,c#,enums,C#,Enums,我有两个枚举 public enum YogabandEventDuration { [显示(Name=“30分钟”)] 三十分钟=30, [显示(Name=“45分钟”)] FortyFiveMinutes=45, [显示(Name=“60分钟”)] 六分钟=60, [显示(Name=“75分钟”)] 七十五分钟=75, [显示(Name=“90分钟”)] 九分钟=90 } 公共枚举私有价格 { [显示(名称=“$8.95”)] 第三十分钟=895, [显示(名称=“$14.95”)] Fo

我有两个枚举

public enum YogabandEventDuration
{
[显示(Name=“30分钟”)]
三十分钟=30,
[显示(Name=“45分钟”)]
FortyFiveMinutes=45,
[显示(Name=“60分钟”)]
六分钟=60,
[显示(Name=“75分钟”)]
七十五分钟=75,
[显示(Name=“90分钟”)]
九分钟=90
}
公共枚举私有价格
{
[显示(名称=“$8.95”)]
第三十分钟=895,
[显示(名称=“$14.95”)]
FortyFiveMinute=1495,
[显示(名称=“$19.95”)]
六分钟=1495,
[显示(名称=“$24.95”)]
七分五分钟=2495,
[显示(名称=“$27.95”)]
九分钟=2795

}
根据@SteveJ的建议,我个人会选择这样的方式

var privateSession = new Dictionary<Session, double>()
{
   { Session.ThirtyMinute, 8.95},
   { Session.FortyFiveMinute, 14.95 },
   { Session.SixtyMinute, 19.95  },
   { Session.SeventyFiveMinute, 24.95 },
   { Session.NinetyMinute, 27.95 }
};

就我个人而言,根据@SteveJ的建议,我会选择这样的方式

var privateSession = new Dictionary<Session, double>()
{
   { Session.ThirtyMinute, 8.95},
   { Session.FortyFiveMinute, 14.95 },
   { Session.SixtyMinute, 19.95  },
   { Session.SeventyFiveMinute, 24.95 },
   { Session.NinetyMinute, 27.95 }
};

即使这真的很奇怪: 您可以创建一个字符串来获取它的枚举等效值

var time = YogabandEventDuration.ThrityMinutes.ToString();
var price = Enum.Parse(typeof(PrivatePrice), time );
var intValue = (int)price;
根据您的要求提供一个简单的函数:

private int GetPrice(YogabandEventDuration duration) {
    return (int)Enum.Parse(typeof(PrivatePrice), duration.ToString());
}

即使这真的很奇怪: 您可以创建一个字符串来获取它的枚举等效值

var time = YogabandEventDuration.ThrityMinutes.ToString();
var price = Enum.Parse(typeof(PrivatePrice), time );
var intValue = (int)price;
根据您的要求提供一个简单的函数:

private int GetPrice(YogabandEventDuration duration) {
    return (int)Enum.Parse(typeof(PrivatePrice), duration.ToString());
}

我认为枚举不一定是实现目标的正确方法。你可能需要一个数据库表、一个配置文件或一个字典。这是一件非常奇怪的事情,但是:你可以解析一个字符串来获得它的枚举值。我只是在寻找一个更简单的解决方案,它是一个case语句,查找长度,然后返回价格,但是我在不同的领域中实现了这一点,我想把它整合到一个类中,在瑜伽持续时间中,
ThrityMinutes
有一个S和
ThirtyMinute
在价格上不要…。只是把它放到线程中的一个输入错误,我认为枚举不一定是你想要实现的目标的正确方法。你可能需要一个数据库表、一个配置文件或一个字典。这是一件非常奇怪的事情,但是:你可以解析一个字符串来获取它的枚举值。我只是在寻找一个更简单的解决方案,它是一个case语句,查找长度,然后返回价格,但是我在不同的领域实现了这一点,我想把它整合到一个类中,在瑜伽持续时间中,
ThrityMinutes
有一个S和
ThirtyMinute
的价格不要…只是一个输入线程的输入错误我想我想要的是{YogabandEventDuration.ThrityMinutes,PrivatePrice.ThrityMinutes}在字典中,我可以改变enum中的价格,编辑enum而不是编辑数据库或Json有什么好处?编辑enum意味着不重新编译实时编辑。enum不是存储这些信息的好方法。将这些信息存储在数组/类中,这样任何类都可以像使用enum一样访问这些信息;如果它不是一个永远不会改变的静态数组,那么将访问设置为它在这个类中存储的位置。这样,每个人都使用这个类,这个类说它在数据库/Json/代码中手写。你在每一个级别上都会赢,而不需要做很大的修改。我将它们存储在枚举中,因为它们在html视图的下拉列表中显示。所以学生们会选择一个持续时间,然后得到一个价格。我想我想要的是类似于{YogabandEventDuration.ThrityMinutes,PrivatePrice.thurtyminutes}在字典中,我可以改变enum中的价格,编辑enum而不是编辑数据库或Json有什么好处?编辑enum意味着不重新编译实时编辑。enum不是存储这些信息的好方法。将这些信息存储在数组/类中,这样任何类都可以像使用enum一样访问这些信息;如果它不是一个永远不会改变的静态数组,那么将访问设置为它在这个类中存储的位置。这样,每个人都使用这个类,这个类说它在数据库/Json/代码中手写。你在每一个级别上都会赢,而不需要做很大的修改。我将它们存储在枚举中,因为它们在html视图的下拉列表中显示。所以学生将选择一个持续时间,然后得到一个价格