只是想知道是否有人在周围打算所有可能的组合从0000到9999打印(试图将代码破解成旧手机和新学习C#)......百万谢谢。贝拉
答案 0 :(得分:25)
为什么事情变得复杂?
for (Int32 index = 0; index < 10000; index++)
Console.Out.WriteLine(index.ToString("0000"));
由于您评论您输出的是标签,并且每个值之间都有换行符,因此这是一种更好的方式:
List<String> values = new List<String>();
for (Int32 index = 0; index < 10000; index++)
values.Add(index.ToString("0000"));
label1.Text = String.Join(
Environment.NewLine,
values.ToArray());
尝试一下,看看它是否能满足您的需求。
答案 1 :(得分:10)
Console.WriteLine("0000");
Console.WriteLine("0001");
Console.WriteLine("0002");
Console.WriteLine("0003");
// snip everything in the middle
Console.WriteLine("9998");
Console.WriteLine("9999");
对于那些缺乏幽默感的人,请不要在家里尝试。
答案 2 :(得分:2)
你想数到9999吗?
答案 3 :(得分:2)
我认为Digitalex的解决方案是最优雅但耗费内存的。
这是一个更好的选择:
foreach (var number in Enumerable.Range(0, 10000).Select(i => i.ToString("0000")))
Console.WriteLine(number);
答案 4 :(得分:1)
for (int index = 0; index < 10000; index++)
{
Console.WriteLine(index);
}
答案 5 :(得分:1)
就像Lasse说的那样,只需按顺序打印它们。但是你可以用Linq做更简单的事情;
Enumerable.Range(0, 9999).ToList().ForEach(Console.WriteLine);
如果你有一个辅助函数(我通常会在Utilities类中使用它),你也可以避免使用“ToList”;
public static void ForEach<T>(this IEnumerable<T> elements, Action<T> action)
{
foreach (var element in elements) { action(element); }
}
请注意,此实用程序方法并非严格要求它可以工作,但会大大降低内存要求(因为ToList会在行为中实际创建内存中所有数字的列表)。