我正在使用以下代码将我的文本文件加载到hashset中。
HashSet<string> hashs = new HashSet<string>(File.ReadLines("textFile.txt"));
想知道是否有任何简单的方法可以从中获得随机线吗?
假设textFile.txt包含10行,我想随机化并获取这些现有行之一。
Random randomizer = new Random();
string[] asArray = hashs.ToArray()
string randomLine = asArray[randomizer.Next(asArray.length)];
一个简单的答案,例如接受的答案,而不必每次都枚举整个数组:
您可以生成一个介于0和集合大小之间的随机数,然后遍历集合直到找到索引与生成的数字相同的项目。然后选择此项作为随机元素
或者可能是针对任何枚举的更通用解决方案
。Net Framework 3.5开始,您可以将Linq及其Enumerable.First()
扩展方法使用。不指定任何条件作为参数,此方法将返回