使用Linq to XML时键入转换错误

时间:2013-12-06 11:40:57

标签: c#-4.0

我创建了一个示例XML。并尝试使用LINQ读取

这是代码:

  XElement root =  XElement.Load("C:\\............\\TestData.xml");
  IEnumerable<Xelement> address = from tt in root.Elements("Test")
  select tt;

我在select语句中遇到编译时错误:

Cannot implicitly convert type 
    'System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement>' 
    to 'System.Collections.Generic.IEnumerable<EvalTest.Xelement>'. 
    An explicit conversion exists (are you missing a cast?)

XML:

<?xml version="1.0" encoding="utf-8" ?>
<TestData>
    <Test Method="1">
        <ID>1</ID>
        <Submitter> Ritvij</Submitter>
        <Date>11/5/2013 2:51:57 PM </Date>
    </Test>
    <Test Method="2">
        <ID>1</ID>
        <Submitter> Ritvij</Submitter>
        <Date>11/5/2013 2:51:57 PM </Date>
    </Test>
</TestData>

1 个答案:

答案 0 :(得分:0)

root.Elements会返回IEnumerable<XElement>(大写字母为“E”),但您尝试将其分配给IEnumerable<Xelement>(小写“e”)。

修改代码以使用XElement或使用var

IEnumerable<XElement> address = from tt in root.Elements("Test") select tt;
var address = from tt in root.Elements("Test") select tt;