Как я могу вернуть пару значений ключа из функции
я реализую функцию в 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>
вместо.