使用另一个数组(C#)初始化某种类型的数组

Shi*_*kan 1 c#

这是我的问题:假设我有一个带有这样一个构造函数的类:

Class A {
   private int i;
   public A(int new_i) {
      i = new_i;
   }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用int数组初始化A数组吗?如果是这样,我该怎么办?我想的是:

int[] b = new int[5] { 0,1,2,3,4}; 
A[] a; 
a = new A[](b);
Run Code Online (Sandbox Code Playgroud)

谢谢!

Mar*_*ell 6

var a = Array.ConvertAll(b, item => new A(item));
Run Code Online (Sandbox Code Playgroud)

这里的优点是它将使用正确的大小创建,没有任何中间步骤 - 加上它没有LINQ.

在C#2.0中它有点丑陋 - 以下是相同的:

A[] a = Array.ConvertAll<int,A>(b,
    delegate(int item) { return new A(item); });
Run Code Online (Sandbox Code Playgroud)

varlambdas和改进的泛型类型推断的组合在这里真正为C#3.0带来了光彩.