using System.Collections.Generic;
public static void Main()
const string xml = @"<NFLTeams>
<HeadCoach>Bill Belichick</HeadCoach>
<OffensiveCoordinator>Josh McDaniels</OffensiveCoordinator>
<DefensiveCoordinator>Unknown</DefensiveCoordinator>
<Quarterback>Jarret Stidham</Quarterback>
<WideReceiver>N'Keal Harry</WideReceiver>
<TeamName>Patriots</TeamName>
<StadiumCapacity>65878</StadiumCapacity>
<StadiumLocation>Foxboro, MA</StadiumLocation>
<HeadCoach>Adam Gase</HeadCoach>
<OffensiveCoordinator>Dowell Loggains</OffensiveCoordinator>
<DefensiveCoordinator>Gregg Williams</DefensiveCoordinator>
<Quarterback>Sam Darnold</Quarterback>
<WideReceiver>Breshad Perriman</WideReceiver>
<TeamName>Jets</TeamName>
<StadiumCapacity>82500</StadiumCapacity>
<StadiumLocation>East Rutherford, NJ</StadiumLocation>
<HeadCoach>Anthony Lynn</HeadCoach>
<OffensiveCoordinator>Shane Steichen</OffensiveCoordinator>
<DefensiveCoordinator>Gus Bradley</DefensiveCoordinator>
<Quarterback>Tyrod Taylor</Quarterback>
<WideReceiver>Keenan Allen</WideReceiver>
<TeamName>Chargers</TeamName>
<StadiumCapacity>27000</StadiumCapacity>
<StadiumLocation>Carson, CA</StadiumLocation>
var doc = XElement.Parse(xml);
var teams = ( from p in doc.Descendants("Players").Select((x, i) => new { player = x, index = i })
join t in doc.Descendants("TeamInfo").Select((x, i) => new { team = x, index = i })
on p.index equals t.index
Quarterback = (string)p.player.Element("Quarterback"),
TeamName = (string)t.team.Element("TeamName"),
StadiumCapacity = (int)t.team.Element("StadiumCapacity")
teams.ForEach(t => Console.WriteLine(string.Format("Quarterback: '{0}', Team Name: '{1}', Stadium Capacity: '{2}'", t.Quarterback, t.TeamName, t.StadiumCapacity)));
public string Quarterback { get; set; }
public string TeamName { get; set; }
public int StadiumCapacity { get; set; }