字典中的随机值

本文关键字:随机 字典 | 更新日期: 2023-09-27 18:34:25

var dd = new Dictionary<Guid, object>(); //readonly in my real code
dd.Add( Guid.NewGuid() , 'a');
dd.Add( Guid.NewGuid() , 'a');
dd.Add( Guid.NewGuid() , 'a');
var randone = dd.ElementAt(new Random(dd.Count()).Next(dd.Count));

我想尽快从 dd 中获取一个随机值(每毫秒都很重要),但我很确定我没有使用上面的示例这样做。如何重做 randone 以获得随机的 KeyValuePair?在实际代码中,键实际上是一个 GUID,但值是一个自定义 POCO。

字典中的随机值

如果您可以将所有键保留在一个List<T>中,那么您可以在 0 和 List.Count 之间选择一个随机数。使用该数字索引到列表中(简单查找),然后使用它索引到字典中。