C# 为二维栅格创建文件结构
对于我的A*算法,我想创建一个设置文件,其中包含创建网格的循环的数据信息 目前,我的细胞只需要知道他们的领域成本,但这可能会改变以后。我想保持信息的灵活性 一种简单的方法是创建一个字节数组 但我只能将现场成本存储在那里。我想用JSON来做这个C# 为二维栅格创建文件结构,c#,json,a-star,C#,Json,A Star,对于我的A*算法,我想创建一个设置文件,其中包含创建网格的循环的数据信息 目前,我的细胞只需要知道他们的领域成本,但这可能会改变以后。我想保持信息的灵活性 一种简单的方法是创建一个字节数组 但我只能将现场成本存储在那里。我想用JSON来做这个 { "1": [ // my first row { "x": 1, // cell one in row one "cost": 1 }, { "x": 2, "cost":
{
"1": [ // my first row
{
"x": 1, // cell one in row one
"cost": 1
},
{
"x": 2,
"cost": null
},
{
"x": 3,
"cost": 3
},
{
"x": 4,
"cost": null
},
{
"x": 5,
"cost": 2
}
],
"2": [ // my second row
{
"x": 1, // cell one in row two
"cost": 3
},
{
"x": 2,
"cost": 2
},
{
"x": 3,
"cost": null
},
{
"x": 4,
"cost": 1
},
{
"x": 5,
"cost": 2
}
]
}
通过使用JSON,我可以将更多数据存储到单元格中,但这种结构似乎比简单的字节数组复杂得多
有更好的解决方案吗?不要对文本文件使用JSON
String input = File.ReadAllText( @"c:\myfile.txt" );
int i = 0, j = 0;
int[,] result = new int[10, 10];
foreach (var row in input.Split('\n'))
{
j = 0;
foreach (var col in row.Trim().Split(' '))
{
result[i, j] = int.Parse(col.Trim());
j++;
}
i++;
}
为什么不是一个类数组?是一种获取对象并将其状态保持在某个位置的行为,对此有内置的支持。这如何能够为每个单元格提供多条信息?很简单,您分配的每个值都映射到一个字典。因此,如果我读入0,它是一个打开的平铺,如果我读入1,它是一个关闭的平铺,2=门等等。字典可以在你的代码中硬编码定义。