在 C# 中使用 XML 将 Grid 二维数组写入文件

Writing Grid 2d array to file using XML in C#

我有一个巨大的二维数组,看起来像

Map grid = new int[,] { {1,1,1,1,1,1},{0,0,0,0,0,0},{2,2,2,2,2,2}}; 

我用它来描述一个单一游戏项目的网格。 我正在为我正在开发的游戏创建关卡编辑器, 关卡编辑器需要将使用关卡编辑器后创建的新网格写入外部文件。 建议我使用 XML 将我的网格写入外部文件。 稍后,我将不得不读取文件并将数据发送到一个新的 地图网格构造器。

我是 XML 的新手,还没有找到正确编写它的好方法。 我正在使用 visual studio community 2017,C#。 非常感谢您的帮助!

尝试以下操作:

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();
        }
    }
}