【发布时间】:2013-11-13 10:03:30
【问题描述】:
这是我的简单代码,我使用委托和 lambda 表达式从给定的开始日期和结束日期获取工作日。
我的朋友说他可以在一行中写出整个程序。我该怎么做?
public delegate void GetWorkingDays(DateTime x,DateTime y);
class Program
{
static void Main(string[] args)
{
var dt1 = new DateTime(2012, 10, 3);
var dt2 = new DateTime(2013, 10, 3);
System.Collections.ArrayList l = new ArrayList();
GetWorkingDays d = (d1, d2) =>
{
while (d1.Date < d2.Date)
{
if(d1.DayOfWeek == DayOfWeek.Saturday)
{
d1 = d1.AddDays(2);
Console.WriteLine();
}
else
{
Console.Write(d1.Day + " ");
d1 = d1.AddDays(1);
}
}
};
d(dt1, dt2);
}
};
【问题讨论】:
-
“我的朋友说他可以在一行中写出整个程序。”让他回答你的问题:)
-
我是c#的初学者,所以我在这里发布我的问题,以便我可以学习新事物。
-
首先,您选择使用委托而不是方法是有原因的吗?您在这里添加了不需要的开销。除非目的当然是学习与代表合作。
-
他居然告诉我使用delegate可以写成一行,所以我就试了一下...
-
我明白,但我想打印周六和周日不遵循的日子...