这是我的问题: 假设我有一个带有这样一个构造函数的类:
Class A {
private int i;
public A(int new_i) {
i = new_i;
}
}
我可以使用int数组初始化A数组吗? 如果是这样,我该怎么办? 我想的是:
int[] b = new int[5] { 0,1,2,3,4};
A[] a;
a = new A[](b);
谢谢!
答案 0 :(得分:6)
var a = Array.ConvertAll(b, item => new A(item));
这里的优点是它将使用正确的大小创建,没有任何中间步骤 - 加上它没有LINQ。
在C#2.0中,它有点丑陋 - 以下是 相同的 :
A[] a = Array.ConvertAll<int,A>(b,
delegate(int item) { return new A(item); });
var
,lambdas和改进的泛型类型推断的组合在这里真正为C#3.0发光。
答案 1 :(得分:3)
您可以使用LINQ:
int[] b = new int[5] { 0, 1, 2, 3, 4 };
A[] a = b.Select(x => new A(x)).ToArray();