Следующая инструкция LinqToXML извлечет все плитки в список в порядке их сохранения в документе.
Я предполагаю, что XML-файл выглядит следующим образом:
<xml>
<MTiles>
<Tile>
<X>1</X>
<Y>10</Y>
</Tile>
<Tile>
<X>2</X>
<Y>20</Y>
</Tile>
<Tile>
<X>3</X>
<Y>30</Y>
</Tile>
<Tile>
<X>4</X>
<Y>40</Y>
</Tile>
</MTiles>
</xml>
И этот код загрузит его и извлечет все плитки в перечисляемый список. Не забудьте поставить using System.Xml.Linq
вверху файла и собрать его на основе достаточно свежей платформы (IIRC, она была представлена в .NET 3.5)
XDocument doc = XDocument.Load(/* path to the file, or use an existing reader */);
var tiles = from tile in doc.Descendants("Tile")
select new
{
X = (int)tile.Element("X"),
Y = (int)tile.Element("Y"),
};
foreach (var tile in tiles)
{
Console.WriteLine("Tile: x={0}, y={1}", tile.X, tile.Y);
}
Выходные данные из приведенного выше кода с использованием указанного мной XML-файла:
Tile: x=1, y=10
Tile: x=2, y=20
Tile: x=3, y=30
Tile: x=4, y=40
EDIT:
Если вы просто хотите, чтобы все X
-значения были массивом целых чисел, следующий запрос LINQ работал бы:
int[] allXValues = (from tile in doc.Descendants("Tile")
select (int)tile.Element("X")).ToArray();