Linq到Xml,查询表达式里面的'+'操作

时间:2012-03-20 08:15:50

标签: linq-to-xml operations

var query = from k in xDoc.Descendants("product")
                               select
                                new
                                {

                                 KategoriKod =Convert.ToString( k.Element("cat1").Value) + Convert.ToString( k.Element("cat2").Value),

                                };

我想用一个变量取一个xml文件的两个elemens。但是我接受了这个错误

  

“'string'不包含'Value'”的定义

任何人帮助PLZ。?

1 个答案:

答案 0 :(得分:0)

以下适用于我:

static void Main(string[] args)
{
    var xDoc = XDocument.Parse(
@"<root>
    <product>
        <cat1>ABC</cat1>
        <cat2>123</cat2>
    </product>
    <product>
        <cat1>XYZ</cat1>
    </product>
</root>");

    var query = from k in xDoc.Descendants("product")
                select new 
                {
                    KategoriKod = (string)k.Element("cat1") + (string)k.Element("cat2")
                };

    foreach(var k in query)
    {
        Console.WriteLine(k);
    }
}

结果如下:

{KategoriKod = ABC123} {KategoriKod = XYZ} 按任意键继续 。 。

请注意,在对不存在的元素调用.Value时,我使用显式转换运算符(将元素转换为字符串)以避免NullReferenceExceptions。