Объединение двух перечислений в коллекции для получения одного из значений - PullRequest
0 голосов
/ 06 июля 2018

У меня есть два перечисления

public enum YogabandEventDuration
{
    [Display(Name = "30 min")]
    ThirtyMinutes = 30,
    [Display(Name = "45 min")]
    FortyFiveMinutes = 45,
    [Display(Name = "60 min")]
    SixtyMinutes = 60,
    [Display(Name = "75 min")]
    SeventyFiveMinutes = 75,
    [Display(Name = "90 min")]
    NinetyMinutes = 90
}

public enum PrivatePrice
{
    [Display(Name = "$8.95")]
    ThirtyMinute = 895,
    [Display(Name = "$14.95")]
    FortyFiveMinute = 1495,
    [Display(Name = "$19.95")]
    SixtyMinute = 1495,
    [Display(Name = "$24.95")]
    SeventyFiveMinute = 2495,
    [Display(Name = "$27.95")]
    NinetyMinute = 2795
}

Есть ли способ сопоставить значения в каждом перечислении 1-к-1, чтобы я мог выполнить поиск, подобный этому

var theClassPrice = GetPrice(YogabandEventDuration);

и переход в ThirtyMinutes вернет 895

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Даже если это действительно странно: Вы можете разобрать строку, чтобы получить ее эквивалентное значение.

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());
}
0 голосов
/ 06 июля 2018

Лично я бы пошел с чем-то вроде этого, согласно предложению @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 }
};

А затем использовать перечисление для времени сеанса

public enum Session
{
    ThirtyMinute,
    FortyFiveMinute,
    SixtyMinute,
    SeventyFiveMinute,
    NinetyMinute
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...