C# 如何将字符串转换为枚举数组(keycode[])

C# 如何将字符串转换为枚举数组(keycode[]),c#,arrays,string,unity3d,C#,Arrays,String,Unity3d,我试图转换一个字符串,该字符串可能包含用逗号“,”分隔的键码(F1、F2、a、B…) 但当我在文本文件中写入这些值时,我得到的是UnityEngine.KeyCode[],而不是实际值 private static ConfigSimulation UpdateConfigSimulation(string path, ConfigSimulation config) { #region ReadConfig Dictionary<string, string>

我试图转换一个字符串,该字符串可能包含用逗号“,”分隔的键码(F1、F2、a、B…)

但当我在文本文件中写入这些值时,我得到的是UnityEngine.KeyCode[],而不是实际值

    private static ConfigSimulation UpdateConfigSimulation(string path, ConfigSimulation config)
{
    #region ReadConfig
    Dictionary<string, string> content = new Dictionary<string, string>();
    content = ReadConfigFile(path);
    #endregion
    foreach (KeyValuePair<string, string> cont in content)
    {
        if (config.Keys.ContainsKey(cont.Key))
        {
            KeyCode[] Tab = new KeyCode[cont.Value.Split(',').Length];
            if (!cont.Value.Contains(',') || (cont.Value.Length == 0))
            {
                KeyCode MyStatus = (KeyCode)Enum.Parse(typeof(KeyCode), cont.Value, true);
                Tab[0] = MyStatus;
            }
            else if (cont.Value.Contains(','))
            {
                string[] Splits = cont.Value.Split(',');
                for (int i = 0; i < Splits.Length; i++)
                {
                    KeyCode MyStatus = (KeyCode)Enum.Parse(typeof(KeyCode), Splits[i], true);
                    Tab[i] = MyStatus;
                }
            }
            config.Keys[cont.Key] = Tab;
        }
    }
    return (config);
}

config.Keys
属于
Dictionary
类型,因此当您这样做时

foreach (var kvp in config.Keys)
{
    file.WriteLine(kvp.Key + '=' + kvp.Value);
}
kvp.Value
属于
KeyCode[]
类型,因此它被隐式地称为
ToString()
返回
“KeyCode[]”
。没有隐式方法以逗号分隔打印所有值


使用like将数组转换为逗号分隔的字符串


你能发布一个完整的代码示例吗?到底是什么不起作用?代码浏览文本文件,如果​​对应于键,它执行此处理。我将添加书写代码,而不是添加如何以及在何处调用它。。。包括所有变量的类型我希望现在更清楚什么是
config.Keys
?什么是
cont
?公共类ConfigSimulation:monobhavior{public Dictionary key{get;}=new Dictionary();}我不知道。。。你从哪里(哪一行,哪一个变量)得到它?
foreach (var kvp in config.Keys)
{
    file.WriteLine(kvp.Key + '=' + kvp.Value);
}
foreach (var kvp in config.Keys)
{
    file.WriteLine(kvp.Key + '=' + string.Join(",", kvp.Value));
}