LINQを使って、指定個数ランダムで取り出すには


配列からランダムに指定個数選択するには、

  • .OrderBy()にGUIDを与えてランダムソートし、
  • .Take() で指定個数取得すれば良い
RandomTake.cs
using System;
using System.Collections.Generic;
using System.Linq;

IEnumerable<string> lines = new string[] {"1","2","3","4","5","6","7","8","9","10"};
IEnumerable<string> newLines;

newLines = lines.OrderBy(i => Guid.NewGuid()).Take(3);

foreach(var line in newLines)
{
  Console.WriteLine(line);
}