Linq查询某一日期的年份

本文关键字:日期 查询 Linq | 更新日期: 2023-09-27 17:59:17

这是我在控制器中的代码:

}else if (reports == "Decommissioned")
            {
                if (reports != String.Empty)
                {
                    var date = (Convert.ToInt64(specific)) - 5;
                    desktop = desktop.Where(x => x.dt_date_delivered.Value.Year == date);
                    count = desktop.Where(x => x.dt_date_delivered.Value.Year == date).ToList().Count();
                }
            }

此查询位于控制器中的函数内部。我想知道为什么这在我没有把这个查询放在函数中的其他控制器上不起作用,它起作用了。当我尝试运行此代码时,错误为Cannot implicity ceonvert type 'System.Collections.Generic.IEnumerable<InSys_Models.Desktop_reports_vw>' to 'System.Collections.Generic.List<InSys.Models.Desktop_reports_vw>'. An explicit conversion exists(are you missing a cast?)

Linq查询某一日期的年份

因为桌面。Where()函数返回"IEnumerable",您应该调用"ToList()"将IEnumeraable转换为List:

desktop = desktop.Where(x => x.dt_date_delivered.Value.Year == date).ToList();

您需要在Select的末尾调用ToList才能返回列表,而不是IEnumerable。