C# 我怎样才能让linq比较f年和f月

C# 我怎样才能让linq比较f年和f月,c#,mongodb,linq,C#,Mongodb,Linq,我正在尝试从我的数据库中获取记录 我写了下面的linq Connection cn = new Connection(); IMongoDatabase db = cn.ConnectionString(); var collection = db.GetCollection<HolidayListModel>("Holiday"); var filter = Builders<HolidayListModel>.Filter.Eq("business_id", b

我正在尝试从我的数据库中获取记录

我写了下面的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();
        }
Connection cn=new Connection();
IMongoDatabase db=cn.ConnectionString();
var collection=db.GetCollection(“假日”);
var filter=Builders.filter.Eq(“business\u id”,businessid);
尝试
{
var obj=collection.Find(filter.ToListAsync();
if(obj!=null&&obj.Result!=null)
{
如果(月份=“全部”)
{
holidaylist=obj.Result.Where(x=>DateTime.Parse(x.date).Year==selectedyear.OrderBy(x=>DateTime.Parse(x.date)).Select(x=>new HolidayListModel()
{
_id=x.\u id,
business\u id=x.business\u id,
节日,
日期=x.date,
天=x天
}).ToList();
}
其他的
{
holidaylist=(从obj.Result中的x开始,其中((x.date==month))选择x.ToList();
}
在这里,使用lambda表达式,我使用查询表达式获得了数据年vise,我找不到使用年和月来获取数据的方法


有人能指导我如何为这个问题编写linq吗?这通常是通过使用开始/结束值来完成的;因此,
foo.Year==selectedYear
foo.date==month
变成了简单的
foo>=@start&&foo
(结束通常是独占的,因此对于“年”检查,这将是明年1月1日;对于“月”检查,这将是下个月的1日;这意味着最后一天的时间仍然被正确对待)


如果您将日期存储在mongodb中,作为ISO 8601或类似的字符串,您也可以通过字符串比较来执行相同的操作,而不需要任何“解析”逻辑。

从obj.Result中的x开始((DateTime.parse(x.date).Month==Month&&DateTime.parse(x.date).Year==Year))选择席已经尝试了这个,但是给我0个结果HOLYAYLIST =(从X中的Obj.REST()(DATETIME.PARSE(X.DATA).Onth.TSTRIGN()= = On&ODATEIME.PARSE(X.DATE).YOR= = SLEDTEDY年)选择X).TROIST();