Mr.*_*ith 4 c# arrays string .net-2.0
在.net 2.0框架中从C#中的字符串数组中获取随机值的最快方法是什么?我想他们可能有这个:
string[] fileLines = File.ReadAllLines(filePath);
fileLines.GetRandomValue();
Run Code Online (Sandbox Code Playgroud)
是的,我知道GetRandomValue()不是一个实际的方法,是否有类似的东西或多或少同样短而甜?
Mar*_*ell 12
不是内置的,但很容易添加...
static readonly Random rand = new Random();
public static T GetRandomValue<T>(T[] values) {
lock(rand) {
return values[rand.Next(values.Length)];
}
}
Run Code Online (Sandbox Code Playgroud)
(该static字段有助于确保我们在紧密循环中使用它时不会重复,并且lock保护它不受多个呼叫者的影响)
在C#3.0中,这可能是一个扩展方法:
public static T GetRandomValue<T>(this T[] values) {...}
Run Code Online (Sandbox Code Playgroud)
然后你可以完全按照你的例子使用它:
string[] fileLines = File.ReadAllLines(filePath);
string val = fileLines.GetRandomValue();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2827 次 |
| 最近记录: |