我有一个巨大的二维数组,看起来像
Map grid = new int[,] { {1,1,1,1,1,1},{0,0,0,0,0,0},{2,2,2,2,2,2}};
我用它来描述一个单人游戏项目的网格。 我正在为自己开发的游戏创建关卡编辑器, 关卡编辑器需要将使用关卡编辑器后将创建的新网格写入外部文件。 建议我使用XML将网格写入外部文件。 以后,我将不得不读取文件并将数据发送到新 地图网格构造函数。
我是XML的新手,还没有找到正确编写XML的好方法。 我正在使用Visual Studio Community 2017,C#。 非常感谢您的帮助!
答案 0 :(得分:0)
尝试以下操作:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication110
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
int[,] grid = new int[,] { { 1, 1, 1, 1, 1, 1 }, { 0, 0, 0, 0, 0, 0 }, { 2, 2, 2, 2, 2, 2 } };
string xml = "<Data></Data>";
XDocument doc = XDocument.Parse(xml);
XElement data = doc.Root;
for (int row = 0; row <= grid.GetUpperBound(0); row++)
{
XElement xRow = new XElement("Row");
data.Add(xRow);
for (int col = 0; col <= grid.GetUpperBound(1); col++)
{
XElement xCol = new XElement("Column", grid[row, col]);
xRow.Add(xCol);
}
}
data.Add(new XElement("music", new object[] {
new XElement("GEVAs_main_sountrack"),
new XElement("RonWalking")
}));
doc.Save(FILENAME);
XDocument newDoc = XDocument.Load(FILENAME);
int[][] newGrid = newDoc.Descendants("Row").Select(x => x.Elements("Column").Select(y => (int)y).ToArray()).ToArray();
}
}
}