Fastest way to get a random value from a string array in C#?
.net-2.0, arrays, c#, string
Solution
Not built in, but easy enough to add...
static readonly Random rand = new Random();
public static T GetRandomValue<T>(T[] values) {
lock(rand) {
return values[rand.Next(values.Length)];
}
}
(the `static` field helps ensure we don't get repeats if we use it in a tight loop, and the `lock` keeps it safe from multiple callers)
In C# 3.0, this could be an extension method:
public static T GetRandomValue<T>(this T[] values) {...}
Then you could use it exactly as per your example:
string[] fileLines = File.ReadAllLines(filePath);
string val = fileLines.GetRandomValue();
Problem
What's the fastest way to get a random value from a string array in C# on the .net 2.0 framework? I figured they might have had this: ``` string[] fileLines = File.ReadAllLines(filePath); fileLines.GetRandomValue(); ``` Yes, I know GetRandomValue() is not an actual method, is there something similar that's more or less equally short and sweet?