Ну, LINQ to XML в значительной степени основан на итераторах, поэтому их совсем не использовать ... но я подозреваю, что вы хотите что-то вроде:
return doc.Descendants("User")
.Any(x => (string) x.Attribute("Name") == targetName &&
(string) x.Attribute("Pass") == targetPassword);
Или назначить его переменной:
bool foundUser = doc.Descendants("User")
.Any(x => /* code as before */);
или, если вы действительно хотите это как if
условие:
if (doc.Descendants("User")
.Any(x => /* code as before */))
{
}
Лично я бы либо извлек этов отдельный метод (который может быть просто оператором возврата согласно первому примеру) или для простоты используйте локальную переменную - мне не нравится, когда мои условия if
настолько сложны.
Это будет определять, соответствует ли какой-либо элемент User
соответствующим атрибутам.Конечно, он не дает никакой информации об элементе, который соответствует.Для этого вы хотите использовать FirstOrDefault
вместо Any
, а затем, если элемент не равен NULL, это первое совпадение.