【问题标题】:Retrieve all keys in a hash table into a string将哈希表中的所有键检索到字符串中
【发布时间】:2011-03-25 05:00:40
【问题描述】:

编码语言为 C#3.0
将所有哈希表键检索为由分隔符“,”分隔的字符串的最佳方法是什么
for 循环或 foreach 循环是唯一的选择吗?

更新:键已经是字符串了

问候,
纳文杰

【问题讨论】:

  • 密钥字符串已经存在吗?即它是Dictionary<string, foo>

标签: c# asp.net string hashtable


【解决方案1】:

您真的是指非泛型 Hashtable 吗?假设您可以使用 LINQ,您可以使用它:

string keys = string.Join(",", table.Keys.Cast<object>()
                                         .Select(x => x.ToString())
                                         .ToArray());

可能有更快的方法,但为了便于阅读,我会采用这种方法。只有当你证明它是一个瓶颈时才进行微优化。

【讨论】:

    【解决方案2】:

    您也可以使用IDictionaryEnumerator:

    string text = "";
    IDictionaryEnumerator enumerator = table.GetEnumerator();
    while (enumerator.MoveNext())
    {
       text += enumerator.Key + ", ";
       text += enumerator.Value + "\n";
    }
    

    【讨论】:

      【解决方案3】:
      table.Keys.OfType<string>().ToArray();
      

      【讨论】:

        猜你喜欢
        • 2016-02-24
        • 2016-09-06
        • 1970-01-01
        • 1970-01-01
        • 2013-12-19
        • 2016-08-24
        • 1970-01-01
        • 2014-01-02
        • 1970-01-01
        相关资源
        最近更新 更多