C#选择随机字符串以显示

6 浏览
0 Comments

C#选择随机字符串以显示

我正在寻找一种更高效的方法来解决这个问题。假设我有10条励志名言,我希望随机选择3条进行展示。例如:

string0 = "要有耐心";
string1 = "展现机智";
string2 = "坚持不懈";
string3 = "心满意足";
string4 = "更加感恩";
string5 = "自由生活";
string6 = "保持乐观";
string7 = "愉快工作";
string8 = "展现热情";
string9 = "尽力而为";
Console.WriteLine("按回车键查看3条名言");
Console.ReadLine();
//我自己的方法是为这3条名言设置3个新字符串。
//然后为每条名言分配一个整数,用于表示是否已选择。
Random rnd = new Random();
string display1 = "";
string display2 = "";
string display3 = "";
int quote0 = 0;
//我不会为这个示例列出其他整数
    flag1:
    int dice = rnd.Next(10);
    if (dice == 0) //选择了一条名言
    {
      if (quote0 == 1) //它是一条重复的名言
      {
        goto flag1; //重新选择一个数字
      }
      display1 = string0;
      quote0 = 1;
    }
//对于dice 1-9,将有一个if语句,我不会重复
//在flag2和flag3中,对display2和display3重复以上步骤
    Console.WriteLine(display1);
    Console.WriteLine(display2);
    Console.WriteLine(display3);
    Console.ReadLine();

0
0 Comments

问题的出现原因是需要从一组字符串中随机选择三个字符串进行显示,但是在现有代码中没有提供相应的方法。

解决方法是首先将字符串添加到一个List中,然后使用Random类生成一个随机数作为索引,从列表中获取对应索引的字符串,并将该字符串从列表中移除,以避免重复选择。重复这个步骤三次,即可得到三个随机字符串。最后,使用Console.WriteLine()方法将这三个字符串依次显示出来。

以下是解决问题的代码示例:

Random rnd = new Random();
List allStrings = new List();
allStrings.Add("be patient");
allStrings.Add("show resourcefulness");
allStrings.Add("show perseverance");
allStrings.Add("be content");
allStrings.Add("appreciate more");
allStrings.Add("live free");
allStrings.Add("be optimistic");
allStrings.Add("work with joy");
allStrings.Add("show enthusiasm");
allStrings.Add("do your best");
int index = rnd.Next(0, allStrings.Count);
string display1 = allStrings[index];
allStrings.RemoveAt(index);
index = rnd.Next(0, allStrings.Count);
string display2 = allStrings[index];
allStrings.RemoveAt(index);
index = rnd.Next(0, allStrings.Count);
string display3 = allStrings[index];
Console.WriteLine(display1);
Console.WriteLine(display2);
Console.WriteLine(display3);
Console.ReadLine();

以上代码将在控制台中显示三个随机选择的字符串。

如果需要选择更多或更少的字符串,可以调整Take()方法的参数。例如,要选择五个字符串,可以将Take(3)改为Take(5)。

希望以上解决方法能够帮助到您。如果有其他问题,请随时提问。

0