तरीकों में से एक है:
IEnumerable<string> generate()
{
for (char c = 'A'; c <= 'Z'; c++)
yield return new string(c, 1);
for (char c = 'A'; c <= 'Z'; c++)
for (char d = 'A'; d <= 'Z'; d++)
yield return new string(new[] { c, d });
}
संपादित करें:
आप वास्तव में उत्पादन कर सकते हैं "अनंत" अनुक्रम कुछ और अधिक जटिल कोड के साथ (अधिक से अधिक long
मूल्य से घिरा):
string toBase26(long i)
{
if (i == 0) return ""; i--;
return toBase26(i/26) + (char)('A' + i % 26);
}
IEnumerable<string> generate()
{
long n = 0;
while (true) yield return toBase26(++n);
}
यह एक ऐसा होता है: ए, बी, ..., जेड, एए, एबी, ..., जेडजेड, एएए, एएबी, ... आदि:
foreach (var s in generate().Take(200)) Console.WriteLine(s);
बहुत सुरुचिपूर्ण समाधान! – Zebi
यह इतना आसान और सुरुचिपूर्ण है यह डरावना है :) – kprobst
मैं दूसरे मामले में 'नई स्ट्रिंग (नया [] {सी, डी}) वापस कर दूंगा – Snowbear