List<Double> constants = new ArrayList<Double>() {{
add(1.4);
add(0.4);
add(1.2);
add(2.4);
add(4.2);
add(5);
add(6.0);
add(7.0);
}};
Run Code Online (Sandbox Code Playgroud)
Ani*_*Ani 17
在C#3.0或更高版本中,
var constants = new List<double> { 1.4, 0.4, 1.2, 2.4, 4.2, 5D, 6D, 7D };
Run Code Online (Sandbox Code Playgroud)
constants被隐式类型,以List<double>与var关键字.使用collection-initializer语法初始化列表(通过将数字放在大括号中).
这相当于(C#2.0或更高版本):
List<double> constants = new List<double>();
constants.Add(1.4);
constants.Add(0.4);
constants.Add(1.2);
constants.Add(2.4);
constants.Add(4.2);
constants.Add(5D);
constants.Add(6D);
constants.Add(7D);
Run Code Online (Sandbox Code Playgroud)
你可以省略Ds,但我更喜欢明确的数字文字.
另一方面,如果这真的代表了一个未命名的常量列表,那么最好使用一个不可变的集合,比如ReadOnlyCollection<T>.例如:
var constants = new List<double>{1.4, 0.4, 1.2, 2.4, 4.2, 5, 6, 7}.AsReadOnly();
Run Code Online (Sandbox Code Playgroud)
像这样:
List<Double> constants = new List<Double>() { 1.4, 0.4, ... };
Run Code Online (Sandbox Code Playgroud)
这使用C#3.0中的新功能.
如果你还在使用VS2005,你可以写
List<Double> constants = new List<Double>(new double[] { 1.4, 0.4, ... });
Run Code Online (Sandbox Code Playgroud)
这不完全一样.
第一行由编译器转换为Add列表上的一系列调用.
第二行创建一个double[]数组并将其传递给List<T>构造函数,然后将其复制到列表中.
| 归档时间: |
|
| 查看次数: |
330 次 |
| 最近记录: |