【问题标题】:Retrieving a random word from a string array [duplicate]从字符串数组中检索随机单词[重复]
【发布时间】:2013-07-24 08:14:15
【问题描述】:

我有一个包含 5 个不同单词的字符串数组。如何随机选择一个并将其存储在字符串变量中?

string[] arr1 = new string[] { "one", "two", "three" };

【问题讨论】:

标签: c#


【解决方案1】:

使用Random 类:

string[] arr1 = new string[] { "one", "two", "three" };
var idx = new Random().Next(arr1.Length);
return arr1[idx];

【讨论】:

  • 应该是arr1.Length-1
  • @LukeHutton:不,上限是排他的。
  • 不过,可能只是new Random().Next(arr1.Length)
  • @LukeHutton 不应该是 arr1.Length
  • 嗬,你刚刚看到...包容下,独家上msdn.microsoft.com/en-us/library/2dx6wyd4.aspx
【解决方案2】:
using System;

public class Example
{
   public static void Main()
   {
      Random rnd = new Random();
      string[] malePetNames = { "Rufus", "Bear", "Dakota", "Fido", 
                                "Vanya", "Samuel", "Koani", "Volodya", 
                                "Prince", "Yiska" };
      string[] femalePetNames = { "Maggie", "Penny", "Saya", "Princess", 
                                  "Abby", "Laila", "Sadie", "Olivia", 
                                  "Starlight", "Talla" };                                      

      // Generate random indexes for pet names. 
      int mIndex = rnd.Next(malePetNames.Length);
      int fIndex = rnd.Next(femalePetNames.Length);

      // Display the result.
      Console.WriteLine("Suggested pet name of the day: ");
      Console.WriteLine("   For a male:     {0}", malePetNames[mIndex]);
      Console.WriteLine("   For a female:   {0}", femalePetNames[fIndex]);
   }
}

这是文档中的一个示例。

研究一下,很容易采用它来满足您的需求。这个想法是生成一个随机索引并使用它来索引数组 http://msdn.microsoft.com/en-us/library/system.random.aspx

【讨论】:

  • 为什么会被否决?
  • 我没有(也不会)否决这个答案,但我怀疑这是为了给 OP 提供众所周知的鱼,而不是教他钓鱼。
  • 嗯.. 我试图鼓励 OP 使用链接和示例来了解有关该主题的更多信息。当人们开始编程时,索引间接的解决方案并不总是很明显:-)
猜你喜欢
  • 2020-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-06
  • 1970-01-01
  • 1970-01-01
  • 2020-11-09
相关资源
最近更新 更多