首页 > 解决方案 > 循环的存储选项?C#

问题描述

您好我正在学习编程并尝试创建一个简单的控制台应用程序供用户购买电影票。

我目前正在使用很多循环,我想知道是否有办法:

1:存储来自循环的用户输入。

2:从循环中获取存储的数据并将其添加到最终计数中。

我曾尝试使用数组来存储循环中的用户输入,但是当我想将数据存储在最终计数中时,我得到一个错误:运算符不能应用于“int []”和“int”类型的操作数'。

我不想发布我的完整来源,但希望看到我的变量应该可以帮助您了解我需要跟踪的内容。

在此先感谢您,欢迎任何帮助。

            //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;

标签: c#loops

解决方案


如果你想收集一堆东西,一个好的第一步是创建一个类或结构。

这是一个基本的想法——我不打算讨论最佳实践或任何东西:

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};

这使得原始问题更容易回答。我们如何存储这些?当我们想要存储一些东西时,我们使用一个集合

也许最常用的集合是 a 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);

它与上面的循环基本相同,只是写起来更短。通过长期写一些类似的东西来学习并没有什么坏处。


推荐阅读