我的代码是这样的
var eventDocs = new List<dynamic>();
foreach (var node in eventtypeNode.GetDescendantNodes())
{
string files = node.GetProperty("document").Value;
eventDocs.Add(new { Id = node.Id, Name = node.Name, CreatedOn = node.CreateDate, Path = files });
}
Run Code Online (Sandbox Code Playgroud)
这很好用.现在我试图从这个动态列表中获取数据
foreach (var eventDoc in eventDocs)
{
eventDoc.---- //nothing comes on intellisence
}
Run Code Online (Sandbox Code Playgroud)
IntelliSense上没有任何东西?我做错了吗?
你不会从Intellisense得到任何东西,因为你有一个List<dynamic>.你说,"我在编译时不知道这个列表将包含什么.当我访问元素的成员时,只需在执行时动态绑定它."
鉴于你将延迟绑定到执行时间,为什么你会惊讶于Intellisense无法分辨列表中的内容?
在我看来,您应该更改代码以使用LINQ查询开始 - 然后您可以拥有一个已知元素类型的列表,这将是一个匿名类型.
var eventDocs = eventtypeNode.GetDescendantsNodes()
.Select(node => new { Id = node.Id,
Name = node.Name,
CreatedOn = node.CreateDate,
Path = node.GetProperty("document").Value })
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
667 次 |
| 最近记录: |