首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >foreach语句不能对'Diary_Entry‘类型的变量进行操作

foreach语句不能对'Diary_Entry‘类型的变量进行操作
EN

Stack Overflow用户
提问于 2013-02-24 02:25:20
回答 2查看 669关注 0票数 0

通过foreach循环传入日期列表'DiaryEntry‘。它记录的每个日期都将在日历上突出显示...

代码语言:javascript
复制
foreach (DateTime d in DiaryEntry)
            {
                Calendar1.SelectedDates.Add(d);//CALENDAR1 being the ID of the calendar on the aspx page
            }

错误: foreach语句不能对'Diary_Entry‘类型的变量进行操作,因为'Diary_Entry’不包含'GetEnumerator‘的公共定义

有人知道我该怎么解决这个问题吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-24 02:37:16

Diary_Entry是不是应该是某种列表?它是基于实现System.Collections.IEnumerableSystem.Collections.Generic.IEnumerable的集合类吗?否则,如果它只有几个表示日期的属性,就不能对它使用foreach。您必须分别处理每个属性。

代码语言:javascript
复制
Calendar1.SelectedDates.Add(Diary_Entry.Date1);
Calendar1.SelectedDates.Add(Diary_Entry.Date2);
// etc.

如果它有两个日期,分别表示开始日期和结束日期,并且您希望遍历该范围,则不能对其使用foreach,但您仍然可以使用for

代码语言:javascript
复制
for(DateTime d = Diary_Entry.StartDate;d<=Diary_Entry.EndDate;d=d.AddDays(1))
{
   Calendar1.SelectedDates.Add(d);
}
票数 1
EN

Stack Overflow用户

发布于 2013-02-24 02:31:07

您的DiaryEntry对象需要实现IEnumerableIEnumerable

来自msdn

语句对实现System.Collections.IEnumerable或System.Collections.Generic.IEnumerable接口的数组或对象集合中的每个元素重复一组嵌入语句。

我怀疑您的意思是拥有这些对象的数组或其他集合。在这种情况下,您可以使用foreach遍历集合。另一种可能性是DiaryEntry上有一个集合属性,您的意思是要遍历该集合属性...就像下面这样?

代码语言:javascript
复制
foreach(DateTime date in DiaryEntry.Dates) 
{
    ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15043983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档