Похоже, что вы хотите попросить пользователя ввести несколько вариантов, а затем сделать что-то с выборами. Также кажется, что у вас есть цена / стоимость, связанная с каждым элементом, поэтому я хотел бы использовать 3-Tuple
в этом случае.
var options = new List<Tuple<int, string, int>>
{
Tuple.Create( 1, "Cake", 100 ),
Tuple.Create( 2, "Milk", 200 ),
Tuple.Create( 3, "Noodles", 300 ),
Tuple.Create( 4, "Cheese", 400 ),
Tuple.Create( 5, "Coke", 500 )
};
Первый - это выбор, который вы хотите, чтобы пользователь ввел, второй - это элементимя, а третье - цена за единицу.
Затем попросите пользователя ввести свой выбор через запятую:
Console.WriteLine("Select one or more options seperated by a comma");
foreach (var opt in options)
{
Console.WriteLine("{0} - {1}", opt.Item2, opt.Item1);
}
var selection = Console.ReadLine();
Далее мы разделим ввод пользователя запятой иперебрать их. Очевидно, что если вам нужна хорошая программа, вам придется здесь обрабатывать ошибки, если пользователь вводит неверные данные, но это только для иллюстрации.
var items = selection.Split(',');
foreach (var item in items)
{
if (int.TryParse(item, out int value))
{
// We're looking in the 'options' list if we have the selection the user made
var option = options.FirstOrDefault(x => x.Item1 == value);
if (option != null)
{
// If it does exist, do what you want with it. Here I'm merely printing them.
Console.WriteLine("{0} - {1} - {2}", option.Item1, option.Item2, option.Item3);
}
}
}