C# 将随机数/字母代码转换为按顺序读取?
这是一个noobish问题,但我有这个代码,它生成随机数字和字母 使用此代码: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
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
?还要注意,如果它不区分大小写,你应该告诉我们etest.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();
}