在 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();
}
}
}
我有一个巨大的二维数组,看起来像
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();
}
}
}