列举字母的最快方法

我想像这样迭代字母表:

foreach(char c in alphabet) { //do something with letter } 

是一个字符数组最好的方式来做到这一点? (感觉哈克)

编辑:该指标是“最小的键入来实现,同时仍然可读和强大”

(假设ASCII等)

 for (char c = 'A'; c <= 'Z'; c++) { //do something with letter } 

或者,您可以将其分离出来供应商并使用迭代器(如果您计划支持国际化):

 public class EnglishAlphabetProvider : IAlphabetProvider { public IEnumerable<char> GetAlphabet() { for (char c = 'A'; c <= 'Z'; c++) { yield return c; } } } IAlphabetProvider provider = new EnglishAlphabetProvider(); foreach (char c in provider.GetAlphabet()) { //do something with letter } 

或者你可以做,

 string alphabet = "abcdefghijklmnopqrstuvwxyz"; foreach(char c in alphabet) { //do something with letter } 
 var alphabet = Enumerable.Range(0, 26).Select(i => Convert.ToChar('A' + i)); 
 Enumerable.Range(65, 26).Select(a => new { A = (char)(a) }).ToList().ForEach(c => Console.WriteLine(cA)); 

那么要在C#中使用foreach循环,字母表可以是任何IEnumerable<char> 。 什么感觉“哈克”呢?

你可以这样做:

 for(int i = 65; i <= 95; i++) { //use System.Convert.ToChar() fe here doSomethingWithTheChar(Convert.ToChar(i)); } 

虽然,不是最好的方式。 也许我们可以帮助更好,如果我们知道这个原因。

我find了这个:

 foreach(char letter in Enumerable.Range(65, 26).ToList().ConvertAll(delegate(int value) { return (char)value; })) { //breakpoint here to confirm } 

而随机阅读这个博客 ,并认为这是一个有趣的方式来完成任务。