Jar*_*Par 12
这完全取决于密钥的类型.但我们假设他们是一个字符串.您可以使用以下LINQ查询
Hashtable table = GetHashTable();
var keys = table.Keys.Cast<String>().OrderBy(x => x);
Run Code Online (Sandbox Code Playgroud)
对于更复杂的结构,LINQ查询只是略有不同.让我们假设您对密钥有以下定义
struct Name {
public string First;
public string Last;
// Equality code omitted
}
Run Code Online (Sandbox Code Playgroud)
LINQ代码如下
Hashtable table = GetHashtable();
var keys = table.Keys.Cast<Name>().OrderBy(x => x.First).ThenBy(x => x.Last);
Run Code Online (Sandbox Code Playgroud)
好吧,我发现这个片段最适合我的情况:
Hashtable settings = GetSettings();
ArrayList keys = new ArrayList();
keys.AddRange(settings.Keys);
keys.Sort();
foreach (object key in keys)
{
// Logic here
}