I had task to check if XML nodes are in correct order. After some research basically all I needed was this line:
var nodes = myXml.Elements().ToList();
So, code would look something like this:
var nodes = myXml.Elements().ToList();
var expectedOrder = new[] { "first", "second", "third", "fourth" }.ToList();
var actualOrder = nodes.Select(node => node.Name.LocalName).ToList();
Assert.AreEqual(string.Join(",", expectedOrder), string.Join(",", actualOrder));