如何解决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 举报,一经查实,本站将立刻删除。