从Hashtable获取一个随机keyValue

Ham*_*mid 3 c# performance

我有一个我不知道的哈希表是什么内容.

现在我想从中得到一把钥匙和价值;

我使用哈希表是因为它的速度因为哈希表的内容超过4,500,000 KeyValuePair所以我不能使用GetEnumerator它降低程序速度

Dar*_*rov 5

你使用List<TKey>:

Dictionary<string, string> dict = ... your hashtable which could be huge

List<string> keys = new List<string>(dict.Keys);
int size = dict.Count;
Random rand = new Random();
string randomKey = keys[rand.Next(size)];
Run Code Online (Sandbox Code Playgroud)

我们只是创建一个List<TKey>元素指向内存中与哈希表的键相同的位置,然后从这个列表中选择一个随机元素.

如果你想从哈希表中获取一个随机元素值,那么给定一个随机密钥应该非常简单.

string randomeElement = dict[randomKey];
Run Code Online (Sandbox Code Playgroud)