sch*_*mrz 13
自从我使用C#进行编程以来已经过了几年(3-4),但这不够简单和优雅:
string randomPick(string[] strings)
{
return strings[random.Next(strings.Length)];
}
Run Code Online (Sandbox Code Playgroud)
您还应该检查输入数组是否不是null.
您可以定义一个扩展方法来选择任意的随机元素IEnumerable(包括字符串数组):
public static T RandomElement<T>(this IEnumerable<T> coll)
{
var rnd = new Random();
return coll.ElementAt(rnd.Next(coll.Count()));
}
Run Code Online (Sandbox Code Playgroud)
用法:
string[] messages = new[] { "good morning", "good afternoon" };
string message = messages.RandomElement();
Run Code Online (Sandbox Code Playgroud)
这里的好处是,ElementAt和Count已经优化了数组和List对象的版本,而该算法推广使用所有的有限集合类型.
| 归档时间: |
|
| 查看次数: |
14065 次 |
| 最近记录: |