Я предполагаю, что вы хотите сохранить в словаре все игроки и их координаты начальной точки в словаре. Код для этого будет выглядеть так:
Dictionary<int, string> startingpoints = xml.Elements(ns + "startingPoint")
.Select(sp => new {
Player = (int)(sp.Attribute("player")),
Coordinates = (string)(sp.Attribute("coordinates"))
})
.ToDictionary(sp => sp.Player, sp => sp.Coordinates);
Еще лучше, у вас был класс для хранения координат, например:
class Coordinate{
public int X { get; set; }
public int Y { get; set; }
public Coordinate(int x, int y){
X = x;
Y = y;
}
public static FromString(string coord){
try
{
// Parse comma delimited integers
int[] coords = coord.Split(',').Select(x => int.Parse(x.Trim())).ToArray();
return new Coordinate(coords[0], coords[1]);
}
catch
{
// Some defined default value, if the format was incorrect
return new Coordinate(0, 0);
}
}
}
Тогда вы можете сразу разобрать строку в координаты:
Dictionary<int, string> startingpoints = xml.Elements(ns + "startingPoint")
.Select(sp => new {
Player = (int)(sp.Attribute("player")),
Coordinates = Coordinate.FromString((string)(sp.Attribute("coordinates")))
})
.ToDictionary(sp => sp.Player, sp => sp.Coordinates);
После этого вы можете получить доступ к координатам игроков следующим образом:
Console.WriteLine(string.Format("Player 1: X = {0}, Y = {1}",
startingpoints[1].X,
startingpoints[1].Y));