Варианты хранения для Loops?C # - PullRequest
0 голосов
/ 22 ноября 2018

Здравствуйте, я изучаю программирование и пытаюсь создать простое консольное приложение для пользователей, чтобы покупать билеты в кино.

В настоящее время я использую много циклов, и я хотел бы знать, есть ли способ:

1: сохранить пользовательский ввод из циклов.

2: взять сохраненные данные из циклов и добавить их в окончательный подсчет.

Я пытался использовать массив дляхранить пользовательские входные данные из цикла, но когда я хочу получить данные для последующего сохранения в итоговом подсчете, я получаю ошибку: оператор не может быть применен к операндам типа 'int []' и 'int'.

Я не хочу публиковать свой полный исходный код, но надеюсь, что мои vairables помогут вам понять, что мне нужно отслеживать.

Спасибо заранее, любая помощь приветствуется.

            //Ticket sale math Values
            double TotalIncome;
            double IncomeFromChild;
            double IncomeFromAdult;
            double IncomeFromStudent;
            double VATFinal;

            //Tickets Sold (name of film or total)
            double FilmA = 33;
            double FilmB = 15;

            double TotalTicketsSold;
            float PeopleServed;

            //Ticket Sale Counters
            double ChildTickets = 0;
            double Adulttickets = 0;
            double StudentTickets = 0;


            //Array For Ticket prices, sales and user input
            var TicketChoices = new int[3];

            var TicketAmount = new int[48];

            //Maxxium tickets allowed for each film
            int FilmA = 33;
            int FilmB = 15;
            int TotalTickets = 48;

1 Ответ

0 голосов
/ 22 ноября 2018

Если вы хотите собрать кучу чего-то , хорошим первым шагом будет создание класса или структуры.

Вот основная идея - я не буду вдаваться влучшие практики или что-то в этом роде:

public class UserInput
{
    public decimal IncomeFromChild { get; set; }
    public decimal IncomeFromAdult { get; set; }
    public decimal IncomeFromStudent { get; set; }        
    public decimal TotalIncome => IncomeFromChild + IncomeFromAdult + IncomeFromStudent;
}

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

var myInput = new UserInput {IncomeFromChild = 5.00M, IncomeFromAdult = 3.5M};

, что значительно облегчает ответ на исходный вопрос.,Как мы храним это?Когда мы хотим сохранить что-то, мы используем коллекцию .

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

Сначала добавьте импорт using System.Collections.Generic; в начало файла.

var myListOfInputs = new List<UserInput>();
myListOfInputs.Add(myInput);

Затем вы можете просмотреть все элементы в списке следующим образом:

decimal total = 0M;
foreach(var input in myListOfInputs)
{
    total = total + input.TotalIncome;
}

Существует также множество методов расширения для выполнения операций над коллекциями.Если вы добавите этот импорт в начало файла:

using System.Linq;

Вы можете использовать это:

var total = myListOfInputs.Sum(i => i.TotalIncome);

По сути, это то же самое, что и цикл выше, только короче, чтобы написать.Это не помешает учиться, если написать что-то вроде этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...