Проблема в том, что итерируемая коллекция содержит элемент, который не имеет атрибута id
.Для них element.Attribute("id")
- это null
, поэтому попытка получить доступ к свойству Value
выдает NullReferenceException
.
. Один из способов решить эту проблему - использовать вместо этого приведение из Value
:
var qry = from element in bob.Descendants()
where (string)element.Attribute("id") == "200"
select element;
Если элемент не имеет атрибута id
, приведение вернет null
, что прекрасно работает здесь.
И если вы 'выполняя приведение, вы также можете привести к int?
, если хотите.