如何随机选择一个字符串

3 c# random

单击按钮时,字符串应显示为输出ex.good morninggood afternoon.如何使用C#随机选择要显示的字符串?

sch*_*mrz 13

自从我使用C#进行编程以来已经过了几年(3-4),但这不够简单和优雅:

string randomPick(string[] strings)
{
    return strings[random.Next(strings.Length)];
}
Run Code Online (Sandbox Code Playgroud)

您还应该检查输入数组是否不是null.


Jas*_*son 6

您可以定义一个扩展方法来选择任意的随机元素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)

这里的好处是,ElementAtCount已经优化了数组和List对象的版本,而该算法推广使用所有的有限集合类型.