C# リストから N 項目をランダムに選択する
この記事では、LINQ を使用して C# List<T>
から項目のランダムなサブセットを効率的に選択する方法を示します。 最も効果的な方法は、OrderBy
と Take
を組み合わせたものです。
コードは次のとおりです:
<code class="language-csharp">using System; using System.Collections.Generic; using System.Linq; public class RandomElementSelector { public static void Main(string[] args) { // Sample list of strings List<string> names = new List<string>() { "John", "Mary", "Bob", "Alice", "Tom", "Sarah" }; // Select 3 random elements var randomSelection = names.OrderBy(x => Guid.NewGuid()).Take(3); // Output the results Console.WriteLine("Randomly selected elements:"); foreach (string name in randomSelection) { Console.WriteLine(name); } } }</code>
このコードは次のように動作します:
OrderBy(x => Guid.NewGuid())
: 各要素にランダムに生成された一意の GUID を並べ替えキーとして割り当てて、リストをシャッフルします。
Take(3)
: これにより、シャッフルされたリストから最初の 3 つの要素が選択され、実質的に 3 つのランダムに選択された項目が得られます。
このアプローチは、複雑なカスタムランダム化ロジックを実装する必要なく、リストからランダムなサブセットを取得するための簡潔かつ効率的な方法を提供します。
以上がC# リストから N 個のランダムな要素を選択するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。