在C#中打印0000到9999的所有组合

时间:2009-09-23 07:37:09

标签: c# printing

只是想知道是否有人在周围打算所有可能的组合从0000到9999打印(试图将代码破解成旧手机和新学习C#)......百万谢谢。贝拉

6 个答案:

答案 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)

WTF entry

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会在行为中实际创建内存中所有数字的列表)。