![](/img/trans.png)
[英]populating List<dynamic> from an Enumerable.Range or a List<int>
[英]A to Z list of char from Enumerable.Range
我想從Enumerable.Range中創建一個列表。 這段代碼是否正確?
SurnameStartLetterList = new List<char>();
Enumerable.Range(65, 26).ToList().ForEach(character => SurnameStartLetterList.Add((char)character));
或者有更好的方法來制作這種類型的列表嗎?
也許是這樣的?
var surnameList = Enumerable.Range('A', 'Z' - 'A' + 1).
Select(c => (char)c).ToList();
好吧, string
是IEnumerable<char>
,所以這也可以:
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToList()
你必須權衡利弊。
優點:
缺點:
.ToList()
將使用字符串 例如,可以引入錯誤,你會在這里輕易發現錯誤:
"ABCDEFGHIJKLMN0PQRSTUVWXYZ".ToList()
很容易,我的意思是你會發現錯誤,因為你只是閱讀過代碼,而不是你知道這里有問題並去尋找它。
我拿了Can的答案並做了一個擴展功能:
public static IEnumerable<char> Range(char start, char end)
{
return Enumerable.Range((int)start, (int)end - (int)start + 1).Select(i => (char)i);
}
用法:
Console.WriteLine(Range('a', 'f').Contains("Vive La France!"[6]));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.