【问题标题】:How can I return key value pair from a function如何从函数返回键值对
【发布时间】:2013-12-23 07:46:27
【问题描述】:

我正在用 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 后得到的响应字符串。 我得到的propvalue是 {"roles": {"3": "Reseller","2": "Admin end user"},"groups": []}

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

【问题讨论】:

  • 使用Dictionary怎么样?
  • 返回一个元组,使用 out 关键字作为参数或返回一个字典

标签: c# .net json.net keyvaluepair


【解决方案1】:

您可以像这样返回KeyValuePair

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

或使用Tuple

return Tuple.Create(key,value);

如果您有多个 KeyValuePair 要返回使用 Dictionary,您可以阅读更多关于 Tuple 和 KeyValuePair 之间的性能差异here。简而言之,使用 Tuple 是更好的主意,因为它具有更好的性能。

【讨论】:

    【解决方案2】:

    使用Tuple&lt;T1, T2&gt;

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

    如果您有多个键值对,则返回 Dictionary&lt;string, string&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      相关资源
      最近更新 更多