0

私はこのようなものを持っています:

<Books>
    <Book>
        <Number>
        <Title>
        <Author>
        <NumberOfCopies>
    </Book>
</Books>

このNumberOfCopies要素は、図書館が同じ本の同じコピーをいくつ持っているかを意味します。(同じ本=同じ著者、同じタイトル)。要素は本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;

これはうまくいきません。私は何を間違っていますか?

4

1 に答える 1

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");
}

もちろん、これは、特定の本に対して1つの要素しかないことを前提としています。

于 2012-11-07T09:36:57.617 に答える