2009-06-01 54 views
1

,如果我有一個類FooWrapper在建造時需要在富:傳入構造跨越陣列

Foo foo = new Foo(); 
FooWrapper fooWrapper = new FooWrapper(foo); 

的時候,我得到Foo的背部陣列從一些API

Foo[] foos = _api.GetFoos(); 

無論如何,我可以通過傳遞適當的Foo對象來構建一個FooWrappers數組,而不必簡​​單地遍歷每個Foo對象?

+0

請你解釋一下你的問題多一點? – 2009-06-01 11:21:12

回答

8

可以使用Array.ConvertAll方法。

FooWrapper[] wfoos = Array.ConvertAll<Foo, FooWrapper>(foos, delegate(Foo foo){return new FooWrapper(foo);}); 
+0

在Visual Studio 2005中完成這項工作嗎? C#2.0? – leora 2009-06-01 11:28:23

+1

您可以用lambda替換上一個委託參數: (f => new FooWrapper(f))。這是一個品味問題。 – 2009-06-01 11:28:26

2

我想了Arul有着相當不錯的答案,但我想提出一個問題:使用泛型和/或LINQ真的「好」?

我會在這裏使用一個簡單的for循環。主要原因是可讀性。