我是否看得太远,看不到选择一个简单的数字:0或1?
Random rand = new Random();
if (rand.NextDouble() == 0)
{
lnkEvents.CssClass = "selected";
}
else
{
lnkNews.CssClass = "selected";
}
答案 0 :(得分:72)
Random rand = new Random();
if (rand.Next(0, 2) == 0)
lnkEvents.CssClass = "selected";
else
lnkNews.CssClass = "selected";
Random.Next选择下限(包括)和上限(不包括)之间的随机整数。
答案 1 :(得分:27)
如果你想要50/50的概率,我建议:
Random rand = new Random();
if (rand.NextDouble() >= 0.5)
lnkEvents.CssClass = "selected";
else
lnkNews.CssClass = "selected";
答案 2 :(得分:3)
使用Next
方法而不是NextDouble
方法,可以更清楚地表达您想要做的事情(在两个值之间进行选择)。
const int ExclusiveUpperBound = 2;
if (new Random().Next(ExclusiveUpperBound) == 0)
产生的值是“大于或等于零,小于”ExclusiveUpperBound
。
答案 3 :(得分:2)
Random.NextDouble()
将选择0中但小于1.0的任何双数。这些数字中的大部分都不为零,因此您的分布将不会像您预期的那样均匀。
答案 4 :(得分:0)
如果不是很紧张,可以使用
(DateTime.Now.Millisecond % 2) - double DateTime.Now.Millisecond % (double) 10) / 10
答案 5 :(得分:0)
一种非常简单的方法是:
Random random = new Random();
bool result = random.Next(0, 2) != 0;
然后将结果用于您的逻辑。