-6

リンゴ、マンゴー、パパイヤ、バナナ、グアバ、パイナップル - c# を使用してこれらの単語を (1 つずつ) ランダムに生成する方法は? 私が持っている単語のリストからランダムに単語を生成するのを手伝ってください..

4

4 に答える 4

5
Random rnd = new Random();
string GetRandomFruit()
{
    string[] fruits = new string[] { "apple", "mango", "papaya", "banana", "guava", "pineapple" };
    return fruits[rnd.Next(0,fruits.Length)];
}
于 2012-09-05T10:35:06.697 に答える
3

Fisher-Yates を使用して、配列のインプレース シャッフルを実行できます。

static class ArrayMethods
{
    private static readonly Random rng = new Random();
    public static void Shuffle<T>(IList<T> list)
    {
      var r = rng;
      var len = list.Count;
      for(var i = len-1; i >= 1; --i)
      {
          var j = r.Next(i);
          var tmp = list[i];
          list[i] = list[j];
          list[j] = tmp;
      }

    }
}

次のように:

var arr = new[]{
  "apple", 
  "mango", 
  "papaya", 
  "banana", 
  "guava", 
  "pineapple"
};
ArrayMethods.Shuffle(arr);
foreach(var item in arr)
    //print 'em out
于 2012-09-05T10:51:52.120 に答える
3

OrderByLINQのメソッドとGuidsを使用して「ランダムソート」を取得できます

var words = new [] {"apple", "mango", "papaya", "banana", "guava", "pineapple"};
var wordsInRandomOrder = words.OrderBy(i => Guid.NewGuid());

foreach(var word in wordsInRandomOrder)
{
    Console.WriteLine(word);
}

以下は、ランダムな順序で配列から各項目を 1 回foreach提供します。words

于 2012-09-05T10:36:17.287 に答える
3

次のコードを書くことができます。

string[] fruits = new string[] { "apple", "mango", "papaya", "banana", "guava", "pineapple" };
Console.WriteLine(fruits[new Random().Next(0, fruits.Length)]);
于 2012-09-05T10:41:09.840 に答える