从listBox中获取随机项c#

时间:2018-01-11 12:41:40

标签: c#

我有一个listBox,我希望每次都能从我的列表中显示随机项目。

var random = new Random();

 int index = random.Next(listBox1.Items.Count);
 Console.Writeline(listBox1.Items[index].toString());

5 个答案:

答案 0 :(得分:1)

var random = new Random();

 int index = random.Next(0, listBox1.Items.Count);
 Console.Writeline(listBox1.Items[index].toString());

答案 1 :(得分:1)

var random=new Random();
int index=random.Next(0,listBox1.Items.Count);

基本上random.Next(min,max)需要min和max值,以便在给定范围之间生成随机数。 你也应该提供范围。

Console.Writeline(listBox1.Items[index].toString());

答案 2 :(得分:0)

我只是使用你的代码@ilyas它正常工作,坚持下去,只需使用

if (typeof baseURL !== 'undefined')
{
    Vue.axios.defaults.baseURL = baseURL;
}

而不是

MessageBox.Show(listBox1.Items[index].ToString());

我假设您正在创建WinForm应用程序

答案 3 :(得分:0)

您的代码似乎没问题。但是如果你在一个紧凑的循环中使用它,它会给你总是相同的数字。也许这是你的问题?

  

每次执行new Random()时,都会使用时钟进行初始化。

这意味着在紧密循环中,您可以多次获得相同的值。您应该保留一个Random实例并继续在同一个实例上使用 Next

//Define your random class with a static field
public static class RandomAccessor {
    // Static field for your Random to create one instance only
    private static readonly Random random = new Random(); 
    // Object to lock sync on
    private static readonly object syncLock = new object(); 
    // Method to generate random number
    public static int RandomNumber(int max)
    {
        lock(syncLock) {
            // returns a random non-negative number less that max
            return random.Next(max); 
        }
    }
}

然后在你的代码中使用它:

int index = RandomAccessor.RandomNumber(listBox1.Items.Count);
Console.Writeline(listBox1.Items[index].toString());

询问您是否有任何问题。

答案 4 :(得分:0)

这是一个如何运作的基本示例。

using System;
using System.Windows.Forms;

namespace SimpleFormsApplication
{
    public partial class Form1 : Form
    {
        private readonly Random _random = new Random();

        public Form1()
        {
            InitializeComponent();
        }

        private void button_random_Click(object sender, EventArgs e)
        {
            int randomIndex = _random.Next(listBox1.Items.Count);
            var randomItem = listBox1.Items[randomIndex];
            MessageBox.Show($"Random item at index {randomIndex} is {randomItem}");
        }
    }
}

请在这里查看https://msdn.microsoft.com/en-us/library/system.random(v=vs.100).aspx并查看那里的示例。