Как я могу вернуть пару значений ключа из функции

я реализую функцию в 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;
                }
            }
        }
 }

strGetRoles-это строка ответа, которую я получаю после получения JSON api. я получаю пропвал {"роли": {"3":"реселлер", "2":"конечный пользователь Admin"}, "группы": []}

теперь я хочу вызвать эту функцию и получить каждое значение в объект или массив строк.Как вернуть эти значения пары ключей? Заранее спасибо!

2 ответов


вы можете вернуть KeyValuePair такой:

return new KeyValuePair<string,string>(key,value);

или использовать Tuple

return Tuple.Create(key,value);

Если у вас есть более одного KeyValuePair для возврата словаря использования, вы можете узнать больше о различиях в производительности между Tuple и KeyValuePair здесь. Короче говоря, использование кортежа-лучшая идея из-за его лучшей производительности.


использовать Tuple<T1, T2>.

public Tuple<string, string> GetRoles(string strGetRoles)
{
    //...
    return Tuple.Create(key, value);
}

Если у вас есть более одной пары ключ-значение, а затем вернуть Dictionary<string, string> вместо.