c# - 从哈希集中获取随机元素?

标签 c# hashset

我使用以下代码将我的文本文件加载到哈希集

HashSet<string> hashs = new HashSet<string>(File.ReadLines("textFile.txt"));

想知道是否有任何简单的方法可以从中获取随机行?

假设 textFile.txt 包含 10 行,我想随机化并获取其中一行。

最佳答案

无需每次都枚举整个数组,就可以像公认的那样得到一个简单的答案:

private static readonly Random     random  = new Random();
private static readonly HashSet<T> hashset = new HashSet<T>();

...

T element = hashset.ElementAt(random.Next(hashset.Count));

关于c# - 从哈希集中获取随机元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10654292/

相关文章:

c# - 鼠标悬停时的图像在页面加载时占用空间

c# - 如何从*代码隐藏*强制 IE 9 进入 IE8 兼容模式

c# - Web API ViewModel 模式中可能存在不良实践?

c# - 哈希集内存开销

java - parallelStream中HashSet的线程安全

c# - 如何创建文件路径,以便在任何 PC 上找到正确的文件?

c# - 无法创建 BlockingCollection 数组

java - 在 HashSet 中存储数据

java - 用bfs搜索

java - 自定义 equals() 方法无法正常工作