C# 将随机数/字母代码转换为按顺序读取?

C# 将随机数/字母代码转换为按顺序读取?,c#,string,winforms,int,C#,String,Winforms,Int,这是一个noobish问题,但我有这个代码,它生成随机数字和字母 使用此代码: private readonly Random _rng = new Random(); private const string charaters = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890"; private string RandomString(int size) { char[] bu

这是一个noobish问题,但我有这个代码,它生成随机数字和字母

使用此代码:

private readonly Random _rng = new Random();
private const string charaters = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890";

    private string RandomString(int size)
    {
        char[] buffer = new char[size];

        for (int i = 0; i < size; i++)
        {
            buffer[i] = charaters[_rng.Next(charaters.Length)];
        }
        return new string(buffer);
    }
    private void timer1_Tick(object sender, EventArgs e)
    {
         textBox3.Text = RandomString(5);
    }    
private readonly Random\u rng=new Random();
private const string characters=“aabbccddeffgghhiijkkllmmnnooppqqrrsttuuvvwxxyzz1234567890”;
私有字符串随机字符串(整数大小)
{
char[]buffer=新字符[大小];
对于(int i=0;i
我希望它能按顺序而不是随机地阅读所有字符


我将如何做到这一点?

使用LINQ的简单解决方案:

string test = RandomString(5);
string result = string.Join(string.Empty, test.OrderBy(z => z));

这是因为
字符串
字符的数组

我不确定您的确切意思,但它返回“AaBbC”:

把你的评论拼凑起来,我想你想要的是:

string s = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890";
foreach (char c in s)
{
    textBox3.Text += c.ToString() + Environment.Newline; // or perhaps textBox2?
}

这样行吗

class Program
{
    private static readonly Timer Timer = new Timer(100); 
    public static int CurrentValue;
    private const string Charaters = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890";

    static void Main()
    {
        Timer.Elapsed += delegate
                              {
                                  if (CurrentValue < Charaters.Length)
                                  {
                                      Console.Write(string.Format("{0}{1}", Charaters[CurrentValue], Environment.NewLine));
                                      CurrentValue++;
                                  }
                                  else
                                  {
                                      Timer.Stop();
                                  }
                              };
        Timer.Enabled = true;
        Console.ReadLine();
    }
类程序
{
专用静态只读计时器=新计时器(100);
公共静态值;
private const string characters=“aabbccddeffgghhiijkkllmmnnooppqqrrsttuuvvwxxyzz1234567890”;
静态void Main()
{
Timer.appead+=委托
{
if(当前值<字符长度)
{
Write(string.Format(“{0}{1}”,字符[CurrentValue],Environment.NewLine));
CurrentValue++;
}
其他的
{
Timer.Stop();
}
};
Timer.Enabled=true;
Console.ReadLine();
}

首先要将其排序(),作为一个字符数组。在字符串上调用ToArray或ToList。然后再进行排序()。@Terri:按顺序读取所有字符是什么意思?比如,不在文本框中发布wr342,我想让它发布AABBCW如果你只想打印前5个字符,你为什么要使用random?这将在文本框中发布AaBbC?而不是R423s@Terrii你是说,
AaBbC
而不是,比如说,
CBbaA
?还要注意,如果它不区分大小写,你应该告诉我们e
test.OrderBy(z=>char.ToUpperInvariant(z))
。这太复杂了:/我只需要一个简单的代码来读取字符串,然后一个接一个地遍历,然后像这样发布,“a”+Environment.Newline();“a”+Environment.Newline();等等,直到它遍历所有的字符串感谢它很好,但它只是发布而已文本框中的“cddeeffgghhiijjkkllmmnnooppqrrsttuuvwwxxyzz1234567890”是的,谢谢你这么做了:D有没有像这样从A到A到B到B,而不是发布AaBbC?最后一点控制台。Out.WriteLine(c);我似乎无法让它工作,当我启动计时器时,什么都不会发生什么都不会发布到textbox2?它工作!但它会发布所有的字母,现在每行一个,每次计时器滴答声抱歉,时间太晚了,我只想完成此操作Lolook,我再次编辑。如果这仍然不是您想要的,请尝试放置您在原始问题中查找的确切输出。这可以工作,但我希望计时器从a到a,然后到B到B计数,而不是一次发布它们。抱歉,我不清楚您是否在使用系统。计时器。计时器?我刚从工具箱导入了计时器,它的名称是Timer1,这是一个windows窗体计时器。我的经验是,我可以更好地使用它一个系统定时器。你能直接在代码中定义它吗?私有静态只读系统。定时器。定时器=新定时器(100);
class Program
{
    private static readonly Timer Timer = new Timer(100); 
    public static int CurrentValue;
    private const string Charaters = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890";

    static void Main()
    {
        Timer.Elapsed += delegate
                              {
                                  if (CurrentValue < Charaters.Length)
                                  {
                                      Console.Write(string.Format("{0}{1}", Charaters[CurrentValue], Environment.NewLine));
                                      CurrentValue++;
                                  }
                                  else
                                  {
                                      Timer.Stop();
                                  }
                              };
        Timer.Enabled = true;
        Console.ReadLine();
    }