Звучит так, как вы хотите:
string name = "String1"; // Or whatever
var query = from data in doc.Descendants("data")
where (string) data.Attribute("name") == name
select (string) data.Element("value");
string description = query.First(); // Or FirstOrDefault etc
Вы должны подумать о том, что вы хотите, чтобы произошло, если нет точно одного результата.Является ли это ошибочным состоянием (если это так, используйте Single()
), если вы используете все результаты (если это так, просто итерируйте по query
), если вы используете первый результат, если он доступен, и игнорируйте его в противном случае (если так, используйте FirstOrDefault()
и проверьте, является ли результат нулевым), если вы используете первый результат, и это ошибка, если его нет (если так, используйте First()
).