开发者

Initializing an array of a certain type using another array (C#)

This is my question: Let's say I have a class with such a constructor:

Class A {
   private int i;
   public A(int new_i) {
      i = new_i;
   }
}

Can I initialize an array of A with a开发者_如何转开发n array of int? If so, how can I do it? I was thinking something like:

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

Thanks!


var a = Array.ConvertAll(b, item => new A(item));

The advantage here is that it will be created with the right size, without any intermediate steps - plus it works without LINQ.

In C# 2.0 it is a bit uglier - the following is identical:

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

The combination of var, lambdas, and improved generic type inference really shine for C# 3.0 here.


You could use LINQ:

int[] b = new int[5] { 0, 1, 2, 3, 4 }; 
A[] a = b.Select(x => new A(x)).ToArray(); 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜