Почему не просто 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, если адрес может существовать более двух раз.
Вы можете использовать оператор «объединения с нулевым значением»:
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
};
Таким образом, вы получите полный контроль над значением по умолчанию, используемым при отсутствии элемента.
Используйте (строка)
вместо .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, на случай, если элемент не всегда присутствует.