【问题标题】:.NET Code sample to find out what is wrong in the code [closed].NET 代码示例以找出代码中的问题 [关闭]
【发布时间】:2016-03-13 02:50:52
【问题描述】:

我有一个我正在尝试解决的匿名问题(这是一个在线示例问题)...我不确定代码的问题是什么...

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 在最后一行...看起来是一些对象列表..

c.) 网上的问题说,代码有什么问题?对我来说,除了倒数第二行的 == 符号 a=>a.TheMonth == i 之外,我看不到其他任何东西。

【问题讨论】:

  • var i = (DateTime?) startDate 声明了一个名为 i 的 Nullable DateTime 变量。从这段代码中无法确定scoreCardMonths 是什么,但它看起来像是某种List。
  • 谢谢。我不确定为什么我的问题被标记了。我合法地不理解代码的某些方面。是的,你是对的......代码是如此随机......
  • 这部分scorecards.FindAll(a =&gt; a.TheMonth = i)应该是用双等号scorecards.FindAll(a =&gt; a.TheMonth == i)写的,是不是错字?

标签: c# .net linq


【解决方案1】:

a.) 在上面的代码中,我不确定 (DateTime?) startDate 是什么意思?

这是说将startDate 转换为DateTime? 对象。 startDate 可能是一个 DateTime,出于这个 for 循环的目的,它被转换为一个可为空的 DateTime (DateTime?)

b.) scorecardMonths 在最后一行...看起来是一些对象..

同意,它看起来是一个列表,.Add 暗示它是一个 List&lt; ScorecardMonth&gt;

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

【讨论】:

  • 可以像上面写的那样初始化一个 List "Scorecards = new List() 吗?另外,它仍然没有说上面的代码有什么问题?根据你的代码重写一切似乎都很好......大声笑
  • 我不能扔掉和重写代码......我想找出代码的当前方式有什么问题?
猜你喜欢
  • 2020-08-03
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 2012-04-16
相关资源
最近更新 更多