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'))