我正在尝试列出具有特定日期且分配给特定人员的项目,但是由于某些原因,它似乎没有按日期过滤列表。目的是在小组中的每个人之间循环,找出他们在约会之前所要承担的任务。
我尝试了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'相同的列表。
答案 0 :(得分:-1)
item.Date == date.ToShortDateString()
不好看
item.Date似乎是日期,date.TOShortDateString()是一个字符串。
不同的类型,不同的格式等
尝试做
item.Date.ToShortDateString() == date.ToShortDateString()