我是C#中锯齿状数组的新手,似乎无法弄清楚如何使用它们。
我正在尝试使用锯齿状数组来保存一个人工作的周数(硬编码为4),然后他每周工作多少天并保持他每周赚多少钱的价值。 / p>
然后我希望用户输入每周工作的天数,然后询问每天赚多少钱并让用户输入,但我似乎无法弄清楚如何创建循环来做到这一点。
double[][] earningsArray = new double[4][];
//4 = the amount of weeks of work
// then the empty spot = how many days worked that week
答案 0 :(得分:3)
你需要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
}
}
答案 1 :(得分:1)
对于锯齿状的双打阵列来说,这听起来不是一个好例子。
为什么不提供一系列强类型工作周摘要:
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字典的条目推断出它们工作的天数,因此您可以消除数据条目中的步骤。