This is the right way: x = ['a', 'b', 'c'] System::Array[System::String].new(x.map { |s| s.to_s.to_clr_string })
This would simplify to x = ['a', 'b', 'c'] System::Array[System::String].new(x) As soon as we implement implicit conversions here. Tomas From: ironruby-core-boun...@rubyforge.org [mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Jim Deville Sent: Thursday, April 02, 2009 8:41 AM To: ironruby-core@rubyforge.org Subject: Re: [Ironruby-core] How to instanciate a System::String[] from IronRuby? Jimmy and I have discussed a to_clr_array(type) where type defaults to Object, but nothing like that exists yet. JD ________________________________ From: ironruby-core-boun...@rubyforge.org [ironruby-core-boun...@rubyforge.org] on behalf of Curt Hagenlocher [cu...@microsoft.com] Sent: Thursday, April 02, 2009 8:03 AM To: ironruby-core@rubyforge.org Subject: Re: [Ironruby-core] How to instanciate a System::String[] from IronRuby? I don't know if it's the easiest way, but this should work as a conversion: x = ['a', 'b', 'c'] System::Array[System::String].new(x.map { |s| s.to_s.to_clr_string }) (Obviously, if you know that the elements are already Ruby strings, you can omit the "to_s".) From: ironruby-core-boun...@rubyforge.org [mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Thibaut Barrère Sent: Thursday, April 02, 2009 7:36 AM To: ironruby-core Subject: [Ironruby-core] How to instanciate a System::String[] from IronRuby? Hi, while trying to call some C# code from IronRuby, I get this: my_csharp_class_instance.call(%w(some array)) :0: can't convert Array into System::String[] (TypeError) Is there some easy way to construct an array of System::String ? Or a conversion ? cheers, -- Thibaut
_______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core