Port pascal const IdentChars = [‘a’..’z’,’A’..’Z’,’_’];对C#的声明

前端之家收集整理的这篇文章主要介绍了Port pascal const IdentChars = [‘a’..’z’,’A’..’Z’,’_’];对C#的声明前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在将一个Delphi应用程序移植到C#.在其中一个单位中有一个这样的声明:
const
  IdentChars = ['a'..'z','A'..'Z','_'];

我没有找到类似C#的声明语法.

这是我能想到的最好的:

char[] identFirstChars; // = ['a'..'z','_'];
int size = (int)'z' - (int)'a' + 1 + (int)'Z' - (int)'A' + 1 + 1; 
identFirstChars = new char[size];
int index = 0;
for(char ch = 'a'; ch <= 'z'; ch = (char)((int)(ch) + 1))
{
    identFirstChars[index] = ch;
    index++;
}
for (char ch = 'A'; ch <= 'Z'; ch = (char)((int)(ch) + 1))
{
    identFirstChars[index] = ch;
    index++;
}
identFirstChars[index] = '_';

必须有一种更有效的方式.

解决方法

那这个呢?
char[] identFirstChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_".tocharArray();

当然,你可以在你的代码生成一个数组(这可能可以用更少的行使用Enumerable.Range完成),但我认为在你的情况下它不值得.

原文链接:https://www.f2er.com/csharp/97956.html

猜你在找的C#相关文章