XML LINQ C#

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Linq;
public class MainClass {
    public static void Main() {
        XDocument xDocument =
          new XDocument(new XElement("Books",
                 new XElement("Book",
                 new XElement("FirstName", "J"),
                 new XElement("LastName", "R"))));
        XProcessingInstruction xPI1 = new XProcessingInstruction("Book", "out-of-print"); xDocument.AddFirst(xPI1);
        XProcessingInstruction xPI2 = new XProcessingInstruction("ParticipantDeleter",
          "delete"); XElement outOfPrintParticipant = xDocument.Element("Books")
          .Elements("Book")
          .Where(e => ((string)((XElement)e).Element("FirstName")) == "J"
          && ((string)((XElement)e).Element("LastName")) == "R")
          .Single();
        outOfPrintParticipant.AddFirst(xPI2);
        Console.WriteLine(xDocument);
    }
}