让用户在锯齿状数组C#中输入数据



我是C#中锯齿状数组的新手,似乎不知道如何使用它们。

我试图用一个锯齿状数组来保存一个人工作的周数(硬编码为4),然后是他每周工作的天数,并保存他每周赚多少钱的值。

然后我想让用户输入每周工作多少天,然后问每天赚了多少钱,让用户输入,但我似乎不知道如何创建一个循环来做到这一点。

double[][] earningsArray = new double[4][]; 
//4 = the amount of weeks of work
// then the empty spot = how many days worked that week

您需要2个循环才能完成此

第一个循环用于阅读天的工作,并为该周的天分配内存。

第二个循环用于读取每天赚取的金钱,并将其分配给锯齿状数组。

var weeksOfWork = 4;
double[][] earningsArray = new double[weeksOfWork][];
for (int weekIndex = 0; weekIndex < weeksOfWork; weekIndex++)
{
    var daysOfWork = // read days of work
    earningsArray[weekIndex] = new double[daysOfWork]; // allocate memory for days
    for(int dayIndex = 0; dayIndex < daysOfWork; dayIndex++)
    {
         var moneOfDay= // read money earned that day
         earningsArray[weekIndex][dayIndex] = moneyOfDay; // introduce money in a specific day of week
    }
}

对于锯齿状的替身数组来说,这听起来不是一个好的例子。

为什么不拥有一系列强类型的工作周摘要:

public class WorkweekSummary
{
    public WorkweekSummary()
    {
        MoneyMadeOnDay = new Dictionary<DayOfWeek, double>();
    }
    public int DaysWorked { get{ return MoneyMadeOnDay.Count; } 
    public Dictionary<DayOfWeek, double> MoneyMadeOnDay{ get; private set; }
}
var workweekSummaries = new WorkweekSummary[4];

然后,您可以有一个WorkWeekSummary数组,并在其中循环,如果用户在给定的日子内输入了工作日信息,则填写该信息。

他们的工作天数是根据添加到MoneyMadeOnDay字典中的条目推断出来的,因此您可以在数据条目中删除一个步骤。

相关内容

  • 没有找到相关文章

最新更新