Мне нужно рассчитать цену заказа, основываясь на входных данных пользователя, используя словарь, но я не могу понять, что это правильно.
- куриные полоски - $ 3,50
- Картофель фри - $ 2,50
- Гамбургер - 4,00 $
- Хот-дог - $ 3,50
- Большой напиток - $ 1,75
- Средний напиток - $ 1,50
- Молочный коктейль - $ 2,25
- салат - 3,75
- Малый напиток - $ 1,25
Например, если введено значение 236, цена заказа должна быть $ 8.
Преобразование моего LINQ-запроса в double не сработало (мой запрос также определенно неверен).
Я действительно не знаю LINQ, но поскольку вы не можете использовать цикл for для словаря, поскольку они не проиндексированы, у меня нет другого выбора.
Dictionary<int, double> items = new Dictionary<int, double>()
{
{ 1, 3.50 },
{ 2, 2.50 },
{ 3, 4.00 },
{ 4, 3.50 },
{ 5, 1.75 },
{ 6, 1.50 },
{ 7, 2.25 },
{ 8, 3.75 },
{ 9, 1.25 }
};
string order = Console.ReadLine();
double sum = 0;
for (int i = 0; i < order.Length; i++)
{
sum += Convert.ToDouble(items.Where(x => x.Key == int.Parse(order[i].ToString())).Select(x => x.Value));
}
Console.WriteLine(sum);
Console.ReadKey();
Что ж, на выходе должна быть правильная сумма в долларах на основе ввода от пользователя.