【问题标题】:C# collection with accessing keys as members将键作为成员访问的 C# 集合
【发布时间】:2014-08-12 10:27:06
【问题描述】:

我想要一个C#字符串常量集合,它必须有:

1.Keys(定义在编译时间),我可以像这样访问:

Console.WriteLine(obj.Key1); // string output: Value1 
Console.WriteLine(obj.Key2); // string output: Value2

目的是为了有 Intellisens 支持(obj.\ctrl+space\ - 键列表出现)

2.枚举:

foreach(var key in obj)
{
  Console.WriteLine(key);
  // output:
  //   Value1
  //   Value2
}

3.继承

class A {
    obj.A = "Value1";
    obj.B = "Value2";

    public void IterateOverMyObj()
    {
        foreach (var obj in MyObj)
        {
            Console.WriteLine(obj);
            // Output: 
            //   Value1
            //   Value2
        }
    }

class B : A {
    obj.A = "Value1New";
    obj.C = "Value3NewKey";
}

void Main()
{
    B b = new B();
    b.IterateOverMyObj();
    // output:
    //   Value1New
    //   Value2
    //   Value3NewKey
}

作为值,我只需要字符串。这一切都可能吗?

【问题讨论】:

  • 您是否要重新创建Dictionary? (Example usage)
  • 您正在寻找类似于Dictionarydynamic 键(dot 表示法)的东西。看看这篇博文:dynamic dictionary
  • 您可以从this answer 开始并添加功能以列出关闭键。
  • 这是密封类,不能继承。

标签: c# collections enums


【解决方案1】:

Dictionary<K,V>HashTable 呢?

HashTable

Dictionary

对于键,您可以定义常量或类似的东西

【讨论】:

  • 我想在一个操作中添加派生类中的键,而不是两个(第一个:将键添加到字典/哈希表,第二个:添加相应的常量)。
猜你喜欢
  • 2016-11-24
  • 2018-02-14
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 2014-07-29
相关资源
最近更新 更多