0

在以下查询中:

var foundNode3 = (from e in root.Descendants(df + "Inv")
            where e.Descendants(df + "Document").Any(item =>(string)item.Element(df + "InvS").Value == "N")
            select e.Element(df + "DocT").Element(df + "EndT").Value);

输出:23.98、12.34、24.4...

现在做 Sum()

var foundNode3 = (from e in root.Descendants(df + "Inv")
            where e.Descendants(df + "Document").Any(item =>(string)item.Element(df + "InvS").Value == "N")
            select double.Parse(e.Element(df + "DocT").Element(df + "EndT").Value)).Sum();

FormatException:输入格式错误的字符串

有人可以帮助我吗?

4

2 回答 2

3

听起来像 double.Parse 的输入是不可解析的。 http://msdn.microsoft.com/en-us/library/fd84bdyt.aspx Double.Parse(string s) 在无效输入 s 上抛出 FormatException。

于 2013-08-21T14:24:11.137 回答
0

不知道如何用 from 编写它,但像下面这样更改它可能会有所帮助:

var foundNode3 = root.Descendants(df + "Inv")
    .Where(e => e.Descendants(df + "Document")
                 .Any(item =>(string)item.Element(df + "InvS").Value == "N"))
    .Select(e =>
    {
        double value;
        string sValue = e.Element(df + "DocT").Element(df + "EndT").Value;
        if(double.TryParse(sValue, out value))
            return value;
        return 0;
    })
    .Sum();
于 2013-08-22T16:09:46.080 回答