Linq to Xml, операция «+» внутри выражения запроса - PullRequest
1 голос
/ 20 марта 2012
var query = from k in xDoc.Descendants("product")
                               select
                                new
                                {

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

                                };

Я хочу взять два элемента XML-файла по одной переменной.но я получаю эту ошибку

"" строка "не содержит определения для" значения ""

любая помощь plz.?

1 Ответ

0 голосов
/ 27 марта 2012

Для меня работает следующее:

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} Нажмите любую клавишу, чтобы продолжить.,.

Обратите внимание, что я использовал оператор явного преобразования (приведение элементов к строке), чтобы избежать исключений NullReferenceException при вызове .Value для несуществующих элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...