8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

C# 从列表中选择随机元素

Andrea H 1月前

87 0

我正在创建一个小型测验控制台应用程序。我列出了一个包含 3 个问题的列表。我怎样才能让程序随机选择一个问题并将其打印到控制台中?我尝试了一些

我正在创建一个小型测验控制台应用程序。我列出了包含 3 个问题的列表。我怎样才能让程序随机选择一个问题并将其打印到控制台中?

我尝试了一些不同的代码,但由于某种原因似乎无法使其工作。这是我尝试的最后一个代码,我从该网站的另一个用户那里获得,但我收到了错误:

当前上下文中不存在名称“string”。

\'由于 Quiz.Questions.main() 返回 void ,因此 return 关键字后面不能跟对象表达式\'。

这是我尝试的最后一段代码:

class Questions
{
    public static void main()
    {
        var questions = new List<string>{
            "question1",
            "question2",
            "question3"};
        int index = Random.Next(strings.Count);
        questions.RemoveAt(index);
        return questions;

    }

}

谢谢大家的回复。我通过创建数组而不是列表解决了我的问题。这是我现在的代码:

class Questions
{
    public static void main()
    {
        string[] questions = new string[3];
        questions[0] = "question1";
        questions[1] = "question2";
        questions[2] = "question3";
        Random rnd = new Random();
        Console.WriteLine(questions[rnd.Next(0,2)]);
    }
}
帖子版权声明 1、本帖标题:C# 从列表中选择随机元素
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Andrea H在本站《list》版块原创发布, 转载请注明出处!
最新回复 (0)
  • \'名称‘string’在当前上下文中不存在\'

    我想你想要

    int index = random.Next(questions.Count); // according to the lower-case random see last paragraph
    

    而不是

    int index = Random.Next(strings.Count);
    

    因为没有同名的变量 strings ,而您无论如何都想删除一个问题。

    另外,您无法从 void 方法中返回任何内容。因此,创建一个返回列表的方法:

    private Random random = new Random();
    List<string> GetRemoveQuestion(List<string> questions)
    {
            int index = random.Next(questions.Count);
            questions.RemoveAt(index);
            return questions;
    }
    

    编辑 :最后但并非最不重要的一点是,您不能使用 Random.Next 。这将假定存在一种 static Next 方法,但 Random 事实并非如此。因此,我在上面展示了如何创建和使用实例。请注意,您不应该在方法本身中创建它,因为它是用当前时间播种的。如果您非常快速地调用此方法,您会经常得到相同的“随机”值。

    请参阅 msdn 的备注部分 以获取更多详细信息。

返回
作者最近主题: