如何从函数返回键值对

abi*_*abi 8 .net c# json.net keyvaluepair

我正在用C#实现一个函数.这是我班级的功能.我需要从函数中获取值到表单.

    public void GetRoles(string strGetRoles)
    {
        string keyObj;
        string valueObj;
        var parseTree = JsonConvert.DeserializeObject<JObject>(strGetRoles);

        foreach (var prop in parseTree.Properties())
        {
            dynamic propValue = prop.Value;
            if (prop.Name == "roles" && prop.Value.HasValues)
            {
                foreach (var proval in propValue)
                {
                    keyObj = (string)proval.Name;
                    valueObj = (string)proval.Value;                                               
                }
            }
            else if (prop.Name == "groups" && prop.Value.HasValues)
            {
                foreach (var proval in propValue)
                {
                    keyObj = (string)proval.Name;
                    valueObj = (string)proval.Value;
                }
            }
        }
 }
Run Code Online (Sandbox Code Playgroud)

strGetRoles是获取json api后得到的响应字符串.我得到的支持是{"角色":{"3":"经销商","2":"管理员最终用户"},"群组":[]}

现在我想调用此函数并获取对象或字符串数​​组中的每个值.如何返回这些键对值?提前致谢!

Kam*_*ski 10

您可以像这样返回KeyValuePair:

return new KeyValuePair<string,string>(key,value);
Run Code Online (Sandbox Code Playgroud)

或使用 Tuple

return Tuple.Create(key,value);
Run Code Online (Sandbox Code Playgroud)

如果您有多个KeyValuePair返回使用Dictionary,您可以在此处阅读有关Tuple和KeyValuePair之间性能差异的更多信息.简而言之,使用Tuple是更好的主意,因为它具有更好的性能.