使用Linq查找列表中具有特定日期的所有项目

时间:2019-04-15 15:19:45

标签: c# linq

我正在尝试列出具有特定日期且分配给特定人员的项目,但是由于某些原因,它似乎没有按日期过滤列表。目的是在小组中的每个人之间循环,找出他们在约会之前所要承担的任务。

我尝试了Contains和其他方法,但这并不能真正为我提供所需的结果。 “ Var i”的输出似乎只是一系列日期范围内所有项目的列表。

foreach (String consultant in recipent)
            {
                var q = appointmentItems.Where(item => item.Name==consultant);
                ws.Cell(row, col).Value = consultant;
                col++;

                foreach (DateTime date in time)
                {
                    Console.WriteLine(date.ToShortDateString());
                    var i = q.Where(item => item.Date == date.ToShortDateString());
                    loggedTime = 0m;
                    //dailyHours = 7.5m;
                    availableHours = 7.5m;
                    String name = "";
                    String _date = date.ToShortDateString();

                    foreach (CalenderItem item in i)
                    {
                        //populate values and workout availibile hours
                    }
                }
            }

日历项类别

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Office.Interop.Outlook;

namespace ConsoleApplication1
{
    class CalendarItem
    {
        public String Date { get; set; }

        public decimal Duration { get; set; }

        public string Name { get; set; }

        public string Subject { get; set; }

        public bool AllDayEvent{ get; set; }

        public string Category { get; set; }

        public string BusyStatus { get; set; }

        public string Location { get; set; }
    }
}


第一个linq'Q'可以很好地产生与1个人相关的项目列表。第二个linq'i'不执行任何操作,并返回与'Q'相同的列表。

1 个答案:

答案 0 :(得分:-1)

 item.Date == date.ToShortDateString()

不好看

item.Date似乎是日期,date.TOShortDateString()是一个字符串。

不同的类型,不同的格式等

尝试做

 item.Date.ToShortDateString() == date.ToShortDateString()