gpt4 book ai didi

c# - 我如何编写 linq 来比较年月 f

转载 作者:可可西里 更新时间:2023-11-01 10:39:17 26 4
gpt4 key购买 nike

我正在尝试从我的数据库中获取年份和月份的记录

我已经写了以下 linq

Connection cn = new Connection();

IMongoDatabase db = cn.ConnectionString();

var collection = db.GetCollection<HolidayListModel>("Holiday");

var filter = Builders<HolidayListModel>.Filter.Eq("business_id", businessid);

try
{
var obj = collection.Find(filter).ToListAsync();

if (obj != null && obj.Result != null)
{
if (month == "All")
{
holidaylist = obj.Result.Where(x => DateTime.Parse(x.date).Year == selectedyear).OrderBy(x => DateTime.Parse(x.date)).Select(x => new HolidayListModel()
{
_id = x._id,
business_id = x.business_id,
festival = x.festival,
date = x.date,
day = x.day
}).ToList();
}
else
{
holidaylist = (from x in obj.Result where (( x.date == month )) select x).ToList();
}

这里使用 lambda 表达式,我使用查询表达式获得了数据年虎钳,我找不到使用年和月获取数据的方法

谁能指导我如何为这个问题编写 linq

最佳答案

这通常只需使用开始/结束值即可完成;所以foo.Year == selectedYearfoo.date == month变得简单foo >= @start && foo < @end (结束通常是独占的,因此对于“年”检查,将是下一年的 1 月 1 日;对于“月”检查,它将是下一年<的第一天/em> 月;这意味着最后一天的仍然总是被正确处理)。

如果您将日期作为 ISO 8601 或类似字符串存储在 mongodb 中,您也可以通过字符串比较来做同样的事情,而无需任何“解析”逻辑。

关于c# - 我如何编写 linq 来比较年月 f,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49624926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com