我有一个我想解决的匿名问题(这是一个在线示例问题)......我不确定代码的问题是什么......
for (var i = (DateTime?) startDate; i <= startDate.AddMonths(11); i = i.GetValueOrDefault().AddMonths(1))
{
var scm = new ScorecardMonth {
TheMonth = i,
Scorecards = new List<Scorecard>()
};
scm.Scorecards.AddRange(scorecards.FindAll(a => a.TheMonth = i).OrderBy(b => b.GoalType));
scorecardMonths.Add(scm);
}
a。)在上面的代码中,我不确定(DateTime?)startDate是什么意思?
b。)scorecardMonths在最后一行...看来是一些对象List ..
c。)网上的问题说,代码出了什么问题?对我来说,除了在第2行到最后一行的==符号a =&gt; a。月份==我,我什么都看不到。
答案 0 :(得分:1)
a。)在上面的代码中,我不确定(DateTime?)startDate是什么意思?
这就是将startDate
强制转换为DateTime?
个对象。 startDate
可能是一个DateTime,为了这个for循环的目的,它被强制转换为可以为空的DateTime(DateTime?
)
b。)记分卡上最后一行的时间......看起来是某个对象..
同意,它看起来是一个列表,.Add
暗示它是List< ScorecardMonth>
c。)网上的问题说,代码出了什么问题?第5行...记分卡没有对象名称...我想知道是否有其他突出的东西?
我会扔掉整件事并重新开始。我有点理解它在做什么,但它是以一种难以理解的方式编写的 - 这对我来说似乎更容易理解,ymmv:
for (var i = 0; i <= 11; i++)
{
month = startDate.AddMonths(i);
var scm = new ScorecardMonth {
TheMonth = month, //this is a DateTime..
Scorecards = new List<Scorecard>()
};
scorecardsInMonth = scorecards.FindAll(a => a.TheMonth == month)
.OrderBy(b => b.GoalType));
scm.Scorecards.AddRange(scorecardsInMonth);
scorecardMonths.Add(scm);
}