С точки зрения упрощения оператора switch
, я думаю, что Dictionary
(если ключи не были последовательными целыми числами), перечисление или List
(для чего-то вроде 1-10
, как здесь имеет место) уместноСоздание сопоставленного отношения между числами:
int[] growth = {0, 60, 80, 90, 40, 120, 130, 50, 70, 40, 150};
int cropType = 5; // for example
Console.WriteLine(growth[cropType]); // 120
Вот пример словаря, который, я думаю, более понятен для людей:
Dictionary<string, int> growth = new Dictionary<string, int>()
{
{"Potatoes", 60},
{"Strawberries", 80},
{"Cabbages", 90},
{"Carrots", 40},
{"Melon", 120},
{"Pumpkin", 130},
{"Eggplant", 50},
{"Mushroom", 70},
{"Wheat", 70},
{"Truffle", 150}
};
Console.WriteLine(growth["Melon"]);
Однако, увидев ваше второе switch
утверждениеПохоже, что ваши громоздкие switch
признаки являются более серьезной проблемой дизайна.Вы можете подумать о добавлении класса Crop
, который имеет поля-члены для всех свойств, которыми вы манипулируете, например, type
и growth
(и любых других свойств или функций, которые описывают Crop
-ness).
С точки зрения Global
вы можете рассмотреть второй класс, который объединяет Crop
с, например, класс Harvest
со словарем, который отслеживает, сколько урожая каждого урожая было собрано.
Короче говоря, эти вопросы о дизайне могут стать довольно размытыми и основанными на мнениях, но, надеюсь, это даст некоторые идеи для продвижения вперед.