繁体   English   中英

数组字符串多维索引

[英]Array string multidimension index

我正在寻找有关使用正确数据结构的建议。 我相信这应该很明显,但是我无法找到正确的答案。 我需要将SOAP服务实例存储到一个数据结构中,该数据结构将允许我像这样访问它们:

AXLAPIService myInstance = instances["DEV"]["EU"]

// table values
["DEV"]["EU"][instance]
["DEV"]["AM"][instance]
["PROD"]["EU"][instance]
["PROD"]["AM"][instance]

// Data to store
[String][String][Object]

我考虑过元组和字典,但是不确定是否可以使用基于字符串的多个索引来访问它们。 任何人都可以帮助声明实现此目标的正确结构? 谢谢

带有复合键的字典是一个选项。 Tuple是创建此类键的便宜方法,该键已经具有所有必要的比较/哈希方法:

 Dictionary<Tuple<string,string>, Instance> instances = new ....;

 instances.Add(Tuple.Create("DEV", "EU"), euDevInstance);....


 var find = instances[Tuple.Create("PROD", "AM");

注意:如果您决定采用这种方式,请创建具有必要字段的自定义类,并且比较/哈希方法可能会使您的代码更具可读性。

从概念上讲,可能是这样的:

class ConcreteAXLAPIService<T>
{
  private Dictionary<string, T> servicePool;

  public T this[string id]
  {
    get
    {
        return servicePool[id];
    }
  }
}


class MyService<T>
{
    private Dictionary<string, T> methodPool;

    public T this[string id]
    {
      get
      {
          return methodPool[id];
      }
    }
}

用法:

var api = new ConcreteAXLAPIService<MyService>();
...
var apiMethod = api["ServiceName"]["MethodName"];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM