不能像IEnumerable一样使用XElement

时间:2011-04-28 12:24:56

标签: c# f# linq-to-xml c#-to-f#

C#

        var xArr = XDocument.Load(FileName)
                            .Element("dataWorkers")
                            .Elements("worker");
        int i = 0;
        foreach (XElement item in xArr)

F#

    let xArr = (((XDocument.Load fileName).Element <| XName.Get "Dict").Element <| XName.Get "dictNode")
    for x in xArr do
        ()

错误

The type 'XElement' is not a type whose values can be enumerated with this syntax, i.e. is not compatible with either seq<_>, IEnumerable<_> or IEnumerable and does not have a GetEnumerator method
为什么?我无法找到我的错误。

2 个答案:

答案 0 :(得分:4)

在F#代码中,您使用Element找到单个元素,而不是Elements找到元素的序列。< / p>

(C#代码应该没问题 - 您已经在使用Elements。)

答案 1 :(得分:4)

Element Method返回一个XElement(不可枚举)。

Elements Method返回IEnumerable&lt; XElement&gt;。