Чтение XML с использованием XDocument & amp; Linq - проверить, равен ли элемент NULL?

Почему не просто INNER ПРИСОЕДИНЯЙТЕСЬ к таблице с собой?

SELECT a.firstname, a.lastname, a.address
FROM list a
INNER JOIN list b ON a.address = b.address
WHERE a.id <> b.id

Требуется DISTINCT, если адрес может существовать более двух раз.

23
задан dtb 7 April 2010 в 17:48
поделиться

2 ответа

Вы можете использовать оператор «объединения с нулевым значением»:

var q = from b in xml.Descendants("product")
        select new
        {
            name = (string)b.Element("name") ?? "Default Name",
            price = (double?)b.Element("price") ?? 0.0,                    
            extra = (string)b.Element("extra1") ?? String.Empty,
            deeplink = (string)b.Element("deepLink") ?? String.Empty                   
        };

Таким образом, вы получите полный контроль над значением по умолчанию, используемым при отсутствии элемента.

8
ответ дан 28 November 2019 в 23:04
поделиться

Используйте (строка) вместо .Value :

var q = from b in xml.Descendants("product")
        select new
        {
            name = (string)b.Element("name"),
            price = (double?)b.Element("price"),                    
            extra = (string)b.Element("extra1"),
            deeplink = (string)b.Element("deepLink")                   
        };

Это также работает с другим типы данных , включая множество типов, допускающих значение NULL, на случай, если элемент не всегда присутствует.

42
ответ дан 28 November 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: