微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linq查询以.net核心在Date之内获取数据

如何解决Linq查询以.net核心在Date之内获取数据

我想在使用linq查询(.net核心)给出的日期内选择数据。

实体是

public List<Slots> Dates { get; set; }

public class Slots
{
   public string SlotName { get; set; }
   public DateTime SlotDate { get; set; }
}

这是场景。我想从Dates中选择日期内的所有数据,但需要将日期与SlotDate匹配。

我尝试过

IEnumerable<Programs> programs = await _programRepository.GetAllAsync(p => p.Dates.Select(d => d.SlotDate >= startDate && d.SlotDate<=endDate));

解决方法

Linq可以很好地处理DateTime,您可以使用标准的大于/小于运算符。非常基本的示例:

using System;
using System.Collections.Generic;
using System.Linq;
        
public class Slots
{
   public string SlotName { get; set; }
   public DateTime SlotDate { get; set; }
}

public class Program
{
    public static void Main()
    {
        List<Slots> Dates = new List<Slots>();
        Dates.Add(new Slots()
        {
            SlotName = "Test1",SlotDate = DateTime.Now
        });
        Dates.Add(new Slots()
        {
            SlotName = "Test2",SlotDate = DateTime.Now.AddSeconds(5)
        });
                      
        var selection = Dates.Where(s => s.SlotDate > DateTime.Now).Single();
        
        Console.WriteLine(selection.SlotName);
    }
}

Try it out here。显然,您不会使用DateTime.Now,但是只需要简单的“ Where”行。如果要查找两个日期之间的值,只需添加一个&&和另一个条件即可。

这只是从选择中获得.Single()值。如果要查找多个值,请使用.ToList()-返回的值将是一个可以像其他任何列表一样处理的列表。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。