gpt4 book ai didi

c# - 我无法读取 foreach 循环中的 IEnumerable 项目

转载 作者:行者123 更新时间:2023-11-30 22:11:44 26 4
gpt4 key购买 nike

我正在尝试构建一个事件日历,我在其中从 C# 中的 XML 文件获取日期/事件

我正在通过这个加载我的 xml 文档:

XDocument myEventsDocument = XDocument.Load(Server.MapPath("Events.xml"));

然后我将事件存储在一个变量中:

 var resultSet = from p in myEventsDocument.Descendants("event")
select new
{
eventName = p.Attribute("title").Value,
eventVenue = p.Attribute("venue").Value,
eventDate = p.Attribute("date").Value,
eventTime = p.Attribute("time").Value,
eventDuration = p.Attribute("LengthOfEventInMts").Value
};

然后我缓存整个结果:

 Cache.Insert("eventsCache", resultSet, new CacheDependency(Server.MapPath("Events.xml")));

在 Calendar 类的 DayRender 事件中,我将缓存结果存储在 IEnumeration 的非通用集合中:

IEnumerable itemCache = (IEnumerable)Cache["eventsCache"];

当我循环遍历 itemCache 中的项目时,我在智能感知中看不到这些项目,但是当我在调试时单步执行时,我看到了 IEnumerable 项目。

screen shot in the code-behind

Here is the screen shot while stepping-through the code:

请帮我找出我哪里出错了。

最佳答案

您需要创建一个简单的类来访问成员。

public sealed class EventInfo
{
public string Name { get; set; }
public string Venue { get; set; }
public string Date { get; set; }
public string Time { get; set; }
public string Duration { get; set; }
}

然后您必须评估查询。

var results = query.ToList().AsReadOnly();
Cache.Insert("eventsCache", results,
new CacheDependency(Server.MapPath("Events.xml")));

您需要将结果转换为正确的类型。

var itemCache = (IEnumerable<EventInfo>)Cache["eventsCache"];

关于c# - 我无法读取 foreach 循环中的 IEnumerable 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20087180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com