将字典从 .txt 文件转换为 C# 变量
Converting dictionary from .txt file to C# variable
我需要帮助将某个 .txt
文件中的字典转换为 C# 中的变量。看看下面这张图片(.txt
文件):
如您所见,有一个字典,里面有另外两个字典。我想问一下是否可以将其转换为实际的 C# 字典。现在,.txt
文件显然不对应于 C#,因为我只是不知道该怎么做,或者它是否可能。
我在下面有这段代码,可以打开文件并逐行阅读:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class MapLoader: MonoBehaviour
{
void Start()
{
string mapID = "SGT589H";
string path = $"Maps/{mapID}.txt";
Dictionary<string, string> map = new Dictionary<string, string>();
using (var file = new StreamReader(path))
{
string line = null;
bool skip = false;
while ((line = file.ReadLine()) != null)
{
........
}
}
}
}
不介意Unity引擎,在我的问题中没关系。所以我的目标是从 .txt
文件中取出字典并将其保存在名为“map”的 C# 字典中,以便稍后使用字典(它将根据数据生成地图,我将保存它们作为 .txt
文件,而不是统一场景,保存 space 然后使用我的 MapHandler 加载它们)。如您所见,<string, string>
也不对应。
我的问题是,是否有任何方法可以实现该目标,或者您是否可以给我一些关于如何更改结构以实现该目标的想法?谢谢。
如果您决定自行解释此 json-like 格式,您需要编写序列化程序以将 Python 结构转换为 C#,这可能会变得相当复杂,因为您需要考虑不同类型的对象(数组、布尔值、整数和浮点数),你如何阅读每一行和符号等。
另外,如果您尝试将不同类型的值(同样是数组、布尔值、整数)存储到 String 中,那么当您稍后尝试访问和使用它们时,这些值的序列化会让您头疼.
如果您可以更改获取输入的方式和格式,我建议您在这种情况下坚持使用纯 JSON 并使用任何 third-party 库或扩展来解释它(首先 Google 搜索给了我官方 MS 文档和 Json.NET)。
当然,存储数据的方法会改变(也就是说,可能不止一个 Dictionary 对象),但它肯定会更有条理和易于使用。
我需要帮助将某个 .txt
文件中的字典转换为 C# 中的变量。看看下面这张图片(.txt
文件):
如您所见,有一个字典,里面有另外两个字典。我想问一下是否可以将其转换为实际的 C# 字典。现在,.txt
文件显然不对应于 C#,因为我只是不知道该怎么做,或者它是否可能。
我在下面有这段代码,可以打开文件并逐行阅读:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class MapLoader: MonoBehaviour
{
void Start()
{
string mapID = "SGT589H";
string path = $"Maps/{mapID}.txt";
Dictionary<string, string> map = new Dictionary<string, string>();
using (var file = new StreamReader(path))
{
string line = null;
bool skip = false;
while ((line = file.ReadLine()) != null)
{
........
}
}
}
}
不介意Unity引擎,在我的问题中没关系。所以我的目标是从 .txt
文件中取出字典并将其保存在名为“map”的 C# 字典中,以便稍后使用字典(它将根据数据生成地图,我将保存它们作为 .txt
文件,而不是统一场景,保存 space 然后使用我的 MapHandler 加载它们)。如您所见,<string, string>
也不对应。
我的问题是,是否有任何方法可以实现该目标,或者您是否可以给我一些关于如何更改结构以实现该目标的想法?谢谢。
如果您决定自行解释此 json-like 格式,您需要编写序列化程序以将 Python 结构转换为 C#,这可能会变得相当复杂,因为您需要考虑不同类型的对象(数组、布尔值、整数和浮点数),你如何阅读每一行和符号等。
另外,如果您尝试将不同类型的值(同样是数组、布尔值、整数)存储到 String 中,那么当您稍后尝试访问和使用它们时,这些值的序列化会让您头疼.
如果您可以更改获取输入的方式和格式,我建议您在这种情况下坚持使用纯 JSON 并使用任何 third-party 库或扩展来解释它(首先 Google 搜索给了我官方 MS 文档和 Json.NET)。 当然,存储数据的方法会改变(也就是说,可能不止一个 Dictionary 对象),但它肯定会更有条理和易于使用。