Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 为什么.First在这个Linq到Xml查询中是必需的?_C# 4.0_Linq To Xml - Fatal编程技术网

C# 4.0 为什么.First在这个Linq到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

这是我的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" 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);