随机化一个字符串

时间:2013-09-07 13:08:32

标签: c# string random

我是C#的新手,所以不要因为我的愚蠢而责备我。 我正在研究一个应该随机化一个单词并给它长度的应用程序,例如你写一个单词“Line”,它会给你“iLen”。 目前我确信只有这部分有效:

    private void lenght_Click(object sender, EventArgs e)
    {
        String word = textBox1.Text;
        int x = word.Length;
        MessageBox.Show(x.ToString());
    }

    private void randomize_Click(object sender, EventArgs e)
    {
        String word = textBox1.Text;
        int x = word.Length;


    }

我尝试了很多,但大部分时间只是崩溃了应用程序,所以此刻我  想知道Text.ToCharArray做了什么,我希望得到更多的支持。 所以我只需要一个方法,让你的字符串随机化它给你另一个字符串只有mashed / randomized字符。 现在我将问题留下5-7个小时以获得更多答案,我将对它们进行全面审查并给予工作代表。谢谢你的支持! 我已经阅读了你所有的评论但是我很抱歉,现在是时候检查一切了。

2 个答案:

答案 0 :(得分:4)

Randomize方法(来自another SO question):

public static T[] Randomize<T>(T[] source)
{
    List<T> randomized = new List<T>();
    List<T> original = new List<T>(source);
    Random r = new Random();
    for (int size = original.Count; size > 0; size--)
    {
        int index = r.Next(size);
        randomized.Add(original[index]);
        original[index] = original[size - 1];
    }
    return randomized.ToArray();
}

用法:

string text = "Line";

string randomized = new string(Randomize(text.ToCharArray()));

答案 1 :(得分:1)

Random rand = new Random();
var output = new string(input.OrderBy(x => rand.Next()).ToArray());