调试 C# 错误.对象中的访问元素
本文关键字:访问 元素 对象 错误 调试 | 更新日期: 2023-09-27 18:34:55
继上一个问题之后,我有以下代码:
var results =
from result in xml.Descendants(ns + "GetMetalQuoteResult")
select new
{
Type = result.Element(ns + "Type").Value,
Currency = result.Element(ns + "Currency").Value,
Date = result.Element(ns + "Date").Value,
Time = result.Element(ns + "Time").Value,
Rate = (decimal)result.Element(ns + "Rate"),
Bid = (decimal)result.Element(ns + "Bid"),
BidTime = result.Element(ns + "BidTime").Value,
ExpTime = result.Element(ns + "ExpTime").Value,
DisplayTime = result.Element(ns + "DisplayTime").Value,
DisplayDate = result.Element(ns + "DisplayDate").Value,
Ask = (decimal)result.Element(ns + "Ask"),
AskTime = result.Element(ns + "AskTime").Value,
};
如何访问这些元素?
例如,如果我想访问元素"Ask"的值,为什么我不能只使用以下代码。
System.Diagnostics.WriteLine(results.Ask);
我是否做错了什么,因为我收到以下错误
Error 2 'System.Collections.Generic.IEnumerable<AnonymousType#1>' does not contain a definition for 'Ask' and no extension method 'Ask' accepting a first argument of type 'System.Collections.Generic.IEnumerable<AnonymousType#1>' could be found (are you missing a using directive or an assembly reference?)
我在那里被包裹了一会儿,但你的问题在于results
是一个集合,所以你不能这样做 - 你需要在集合的一个项目上这样做:
System.Diagnostics.WriteLine(results.First().Ask);
除了First
之外,我本可以选择许多其他扩展方法来执行此操作,并且无论如何都会以不同的方式执行此操作,这是一个示例。您应该首先检查您的收藏是否包含任何项目并相应地进行检索。
或者,为了演示,您可以循环浏览结果:
foreach (var result in results) {
System.Diagnostics.WriteLine(result.Ask);
}