【发布时间】:2011-03-25 05:00:40
【问题描述】:
编码语言为 C#3.0
将所有哈希表键检索为由分隔符“,”分隔的字符串的最佳方法是什么
for 循环或 foreach 循环是唯一的选择吗?
更新:键已经是字符串了
问候,
纳文杰
【问题讨论】:
-
密钥字符串已经存在吗?即它是
Dictionary<string, foo>?
标签: c# asp.net string hashtable
编码语言为 C#3.0
将所有哈希表键检索为由分隔符“,”分隔的字符串的最佳方法是什么
for 循环或 foreach 循环是唯一的选择吗?
更新:键已经是字符串了
问候,
纳文杰
【问题讨论】:
Dictionary<string, foo>?
标签: c# asp.net string hashtable
您真的是指非泛型 Hashtable 吗?假设您可以使用 LINQ,您可以使用它:
string keys = string.Join(",", table.Keys.Cast<object>()
.Select(x => x.ToString())
.ToArray());
可能有更快的方法,但为了便于阅读,我会采用这种方法。只有当你证明它是一个瓶颈时才进行微优化。
【讨论】:
您也可以使用IDictionaryEnumerator:
string text = "";
IDictionaryEnumerator enumerator = table.GetEnumerator();
while (enumerator.MoveNext())
{
text += enumerator.Key + ", ";
text += enumerator.Value + "\n";
}
【讨论】:
table.Keys.OfType<string>().ToArray();
【讨论】: