在我的diaryEntry标签中; e我有id,siteId和日期。我通过了一个约会,我希望列表'DiaryEntry'存储所有匹配的日期。然后我通过foreach传递此列表,然后在日历上突出显示屏幕上的日期。
DateTime tempDate = System.Convert.ToDateTime(Session["Diary_Date"]);
DateTime startOfMonth = new DateTime(tempDate.Year, tempDate.Month, 1);
DateTime endOfMonth = startOfMonth.AddMonths(1).AddDays(-1);
List<Diary_Entry> DiaryEntry = new List<Diary_Entry>();
DiaryEntry = (from DE in db.Diary_Entries
where DE.Site_Id == 1
&& DE.Date >= startOfMonth && DE.Date <= endOfMonth
select DE).ToList();
foreach (DateTime d in DiaryEntry)//list is name of list you use avoue(in linq)
{
Calendar1.SelectedDates.Add(d);//CALENDAR 1 IS WHAT I CALLED IT IN ASPX
}
错误:无法将类型'diaryEntry'转换为system.datetim
有人可能会建议我如何解决这个问题
答案 0 :(得分:1)
问题在于:
foreach (DateTime d in DiaryEntry)
DiaryEntry
是List<Diary_Entry>
,而不是DateTime
的列表。
更改为:
foreach (Diary_Entry d in DiaryEntry)
现在,对于每个d
,您都可以访问其DateTime
成员。
答案 1 :(得分:1)
foreach (var d in DiaryEntry)
{
Calendar1.SelectedDates.Add(d.Date); //assuming d.Date is a datetime
}
答案 2 :(得分:1)
你的问题是你有Diary_Entry的列表,而不是DateTime,所以如果你想迭代可枚举的datetime,你应该得到它。您可以使用linq执行此操作:
foreach (DateTime d in DiaryEntry.Select(de=>de.Date))
{
Calendar1.SelectedDates.Add(d);//CALENDAR 1 IS WHAT I CALLED IT IN ASPX
}