C# 4.0 为什么.First在这个Linq到Xml查询中是必需的?
这是我的xml文件:C# 4.0 为什么.First在这个Linq到Xml查询中是必需的?,c#-4.0,linq-to-xml,C# 4.0,Linq To Xml,这是我的xml文件: <Corsi> <corso ID="0" nome="Corso 1" quota="100" dataCorso="24/08/2012"></corso> <corso ID="1" nome="Corso 2" quota="100" dataCorso="04/09/2012"></corso> <corso ID="2" nome="Corso 3" quota="100" dataC
<Corsi>
<corso ID="0" nome="Corso 1" quota="100" dataCorso="24/08/2012"></corso>
<corso ID="1" nome="Corso 2" quota="100" dataCorso="04/09/2012"></corso>
<corso ID="2" nome="Corso 3" quota="100" dataCorso="14/09/2012"></corso>
<corso ID="3" nome="Corso 4" quota="100" dataCorso="20/08/2012"></corso>
<corso ID="4" nome="Corso 5" quota="100" dataCorso="30/09/2012"></corso>
</Corsi>
问题2:不工作
var QUERY = docCorsi.Descendants("corso")
.Where(a => (int)a.Attribute("ID") == Convert.ToInt16(txtNomeAgenzia.Text))
.Select(a =>a.Attribute("dataCorso").Value);
有人能解释一下为什么是。第一个是必要的,即使我确信查询只返回一个结果?原因是正常的LINQ查询总是返回一个
IEnumerable
,即使只有一个结果。追加First
返回查询返回的第一个元素。如果确定只能有一个,也可以使用Single
“不工作”不是一个适当的错误描述。您是否遇到编译器错误?异常?查询后,我使用DateTime dt=Convert.ToDateTime(查询);例外情况是:System.InvalidCastException:Impossible eseguire il cast di oggetti di tipo',其中SelectEnumerableInterator`2[System.Xml.Linq.XElement,System.String]'sul tipo'System.IConvertible'。“查询始终返回IEnumerable”完美!这正是我想确定的。谢谢你,丹尼尔!
var QUERY = docCorsi.Descendants("corso")
.Where(a => (int)a.Attribute("ID") == Convert.ToInt16(txtNomeAgenzia.Text))
.Select(a =>a.Attribute("dataCorso").Value);