C#可枚举范围

获得范围“A”…“Z”的方式是什么样的

Enumerable.Range(1,100) Enumerable.Range("A","Z"); 

 Enumerable.Range('A', 26).Select(x => ((char)x).ToString()) 

为什么不保持简单……

 public static IEnumerable GetAlphabet() { return "ABCDEFGHIJKLMNOPQRSTUVWXYZ".AsEnumerable(); } 

编辑:更新以包括达林的更正……

在.NET 3.5 SP1中,这可以工作:

 Enumerable.Range('A', 26).Cast() 

但是, Cast的行为已针对.NET 3.5 SP1进行了更改 ,因此它现在仅对取消装箱转换执行参考转换。 因此,对于.NET 3.5SP1及更高版本,您需要:

 Enumerable.Range('A', 26).Select(x => (char) x); 

诚然,这并不是非常好。

使用MiscUtil,您可以使用

 'A'.To('Z').StepChar(1) 

无论你喜欢与否,都是个人品味的问题:)

另一种方法,如果你想从字母表的一个元素切片到另一个元素……

 Enumerable.Range(0,26).Select(x => (char)((char)x + 'A'))