Как перетасовать строку в Unity C#
Есть ли в Unity C# простой способ перемешать буквы алфавита в строке? Это для создания перемешанной версии строки.
2 ответа
Google Fisher-Yates, и вы найдете это.
To shuffle an array a of n elements (indices 0..n-1):
for i from n − 1 downto 1 do
j ← random integer with 0 ≤ j ≤ i
exchange a[j] and a[i]
Это должно быть достаточно легко перевести на C#
Закажите свою строку чем-то непредсказуемым
var oldString = "shuffle";
var shuffled = new string(oldString.OrderBy(x => Guid.NewGuid()).ToArray());
//shuffled = "feflhus"