C#可枚举范围

时间:2009-11-16 12:25:22

标签: c#

获得范围“A”...“Z”的方式是什么?

Enumerable.Range(1,100) 

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

4 个答案:

答案 0 :(得分:12)

为什么不保持简单......

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

答案 1 :(得分:11)

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

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

Enumerable.Range('A', 26).Cast<char>()

但是,Cast changed for .NET 3.5 SP1的行为,现在它只对取消装箱转化执行参考转化。因此,对于.NET 3.5SP1及更高版本,您需要:

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

不可否认,这并不是非常好。

使用MiscUtil,您可以使用

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

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

答案 2 :(得分:10)

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

答案 3 :(得分:1)

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

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