[C#]文字列をランダムに並び替えるには?

C#

どうも、ちょげ(@chogetarou)です。

文字列(string)をランダムに並び替える方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

文字列(string)をランダムに並び替えるには、ToCharArray()とOrderBy()を使います。

まず、System.Linqを導入します

using System.Linq;

次に、Randomをインスタンス化します。

それから、「new string()」を呼び出します。

string()の引数で、文字列からToCharArray()を呼び出し、ToCharArray()からOrderBy()を呼び出します。

そして、OrderBy()からToArray()を呼び出します。

OrderBy()の引数に、RandomのインスタンスからNext()を呼び出した結果を返す関数を指定します。

//text=対象の文字列
Random rnd = new Random();
		
string result = new string(text.ToCharArray().OrderBy(x => rnd.Next()).ToArray());

上記の「new string()」は、文字列をランダムに並び替えた新しい文字列を生成します。

上記のコードの流れは、以下のようになります。

  1. Randomのインスタンス化
  2. 文字列をChar型の配列に変換
  3. OrderBy()とRandomのインスタンスで配列をランダムに並び替える
  4. ToArray()でOrderBy()の結果を配列に変換
  5. 「new string()」で配列を文字列に変換する

使用例

using System;
using System.Linq;

public class Example
{   
	public static void Main()
	{
		string text = "Hello,World";
		
		Random rnd = new Random();
		
		string result = new string(text.ToCharArray().OrderBy(x => rnd.Next()).ToArray());
		
		Console.WriteLine(result);
 	}
}
出力:
dloreoWHl,l

コメント

タイトルとURLをコピーしました