Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq到对象的日期时间周期_C#_Linq_Linq To Objects - Fatal编程技术网

C# Linq到对象的日期时间周期

C# Linq到对象的日期时间周期,c#,linq,linq-to-objects,C#,Linq,Linq To Objects,我想使用LINQ来处理对象 List<DateTime> allDays = new List<DateTime>(); DateTime start = new DateTime(2010, 1, 1); DateTime maxDate = new DateTime(2010, 1, 11); do { allDays.Add(start); start = start.AddDays(1);

我想使用LINQ来处理对象

    List<DateTime> allDays = new List<DateTime>(); 
    DateTime start = new DateTime(2010, 1, 1);
    DateTime maxDate = new DateTime(2010, 1, 11);
    do
    {
        allDays.Add(start);
        start = start.AddDays(1);
    }
    while (maxDate.Date >= start);
List allDays=new List();
日期时间开始=新的日期时间(2010,1,1);
DateTime maxDate=新的日期时间(2010,1,11);
做
{
所有天。添加(开始);
开始=开始。添加天数(1);
}
while(maxDate.Date>=开始);

谢谢。

您可以执行如下扩展方法:

    public static IEnumerable<DateTime> DaysUpTo(this DateTime startDate, DateTime endDate)
    {
        DateTime currentDate = startDate;
        while (currentDate <= endDate)
        {
            yield return currentDate;
            currentDate = currentDate.AddDays(1);
        }
    }
        DateTime Today = DateTime.Now;
        DateTime NextWeek = DateTime.Now.AddDays(7);

        var weekDays = Today.DaysUpTo(NextWeek).ToList();
或者使用您使用的示例:

DateTime start = new DateTime(2010, 1, 1);
DateTime maxDate = new DateTime(2010, 1, 11);
List<DateTime> allDays = start.DaysUpTo(maxDate).ToList();
DateTime start=newdatetime(2010,1,1);
DateTime maxDate=新的日期时间(2010,1,11);
List allDays=start.DaysUpTo(maxDate.ToList();
编辑:

如果您真的想要LINQ实现,这也可以:

DateTime start = new DateTime(2010, 1, 1);
DateTime maxDate = new DateTime(2010, 1, 11);

List<DateTime> allDays  = Enumerable
                          .Range(0, 1 +(maxDate - start).Days)
                          .Select( d=> start.AddDays(d))
                          .ToList();
DateTime start=newdatetime(2010,1,1);
DateTime maxDate=新的日期时间(2010,1,11);
List allDays=可枚举
.范围(0,1+(最大日期-开始).Days)
.Select(d=>start.AddDays(d))
.ToList();

什么是“使用SQL创建对象”?LINQ到SQL?Ups。。。对不起,这是我的错,谢谢。您的变体很好,但我希望看到LINQ到对象的实现。添加了一个LINQ实现,虽然imo不那么容易理解