我有这样的事情:
<Books>
<Book>
<Number>
<Title>
<Author>
<NumberOfCopies>
</Book>
</Books>
NumberOfCopies
元素表示该库具有相同书籍的相同副本数量。 (同一本书=同一作者,同一标题)。 Number
元素对于每本书都是不同的,它用于将它们存储在库中。
当我添加一本新书时,我想知道该库有多少副本。(int number)如何做到这一点?
XDocument doc = XDocument.Load("books.xml");
var q = from x in doc.Descendants("Books")
where x.Element("Author").Value == newBook.Author
&& x.Element("Title").Value == newBook.Title
select x;
int number = (int)q;
这不起作用。我做错了什么?
答案 0 :(得分:2)
我怀疑你想要:
var book = doc.Descendants("Book") // Note Book, not Books
.Where(x => x.Element("Author").Value == newBook.Author &&
x.Element("Title").Value == newBook.Title)
.FirstOrDefault();
if (book != null)
{
int copies = (int) book.Element("NumberOfCopies");
}
这假设你当然只有一本给定书籍的元素。