将字典从 .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 对象),但它肯定会更有条理和易于使用。