簡體   English   中英

C#可枚舉范圍

[英]C# Enumerable Range

獲得范圍“A”...“Z”的方式是什么樣的

Enumerable.Range(1,100) 

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

為什么不保持簡單......

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

編輯:更新以包括達林的更正......

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

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

但是, Cast的行為已針對.NET 3.5 SP1進行了更改 ,因此它現在僅對取消裝箱轉換執行引用轉換。 因此,對於.NET 3.5SP1及更高版本,您需要:

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

誠然,這並不是非常好。

使用MiscUtil你可以使用

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

無論你喜歡與否,都是個人品味的問題:)

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

另一種方法,如果你想從字母表的一個元素切片到另一個元素......

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM