我想从Enumerable.Range中创建一个列表.这段代码是否正确?
SurnameStartLetterList = new List<char>();
Enumerable.Range(65, 26).ToList().ForEach(character => SurnameStartLetterList.Add((char)character));
Run Code Online (Sandbox Code Playgroud)
或者有更好的方法来制作这种类型的列表吗?
Can*_*cer 39
也许是这样的?
var surnameList = Enumerable.Range('A', 'Z' - 'A' + 1).
Select(c => (char)c).ToList();
Run Code Online (Sandbox Code Playgroud)
ang*_*son 18
嗯,string是的IEnumerable<char>,所以这也有效:
"ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToList()
Run Code Online (Sandbox Code Playgroud)
你必须权衡利弊.
优点:
缺点:
.ToList()处理字符串,则难以阅读例如,可以引入错误,你会在这里轻易发现错误:
"ABCDEFGHIJKLMN0PQRSTUVWXYZ".ToList()
Run Code Online (Sandbox Code Playgroud)
很容易,我的意思是你会发现错误,因为你只是阅读过代码,而不是你知道这里有问题并去寻找它.
我接受了Can的回答并做了一个扩展功能:
public static IEnumerable<char> Range(char start, char end)
{
return Enumerable.Range((int)start, (int)end - (int)start + 1).Select(i => (char)i);
}
Run Code Online (Sandbox Code Playgroud)
用法:
Console.WriteLine(Range('a', 'f').Contains("Vive La France!"[6]));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12358 次 |
| 最近记录: |