2011-02-04 7 views
1

IronRubyスクリプトからC#メソッドを呼び出して、Rubyハッシュにしたいとします。私は辞書を試みたが、それはそのままである。.NetオブジェクトがIronRubyハッシュに対応するもの

私はハッシュとして私IronRubyのスクリプトでの

myHash = scopeObj.GetHash() 
myHash.each{ |k,v| 
    print("#{k}=#{v}") 
} 

結果をそれを使用できるようにしたいと思い

がある

public Dictionary<string, string> GetHash() 
{ 
    Dictionary<string, string> hash = new Dictionary<string, string>(); 
    hash.Add("a", "1"); 
    hash.Add("b", "2"); 
    return hash; 
} 

[a, 1]= 
[b, 2]= 

答えて

1

それは同じように動作しません。 .NETディクショナリの項目はKeyValuePairインスタンスであるためです。

d = scopeObj.get_hash 
h = Hash[*d.collect { |x| [x.key,x.value] }.flatten] 
h.each { |k,v| puts k,v } 

あなたは、変換コードの一行で、かなり簡単にそれを回避することができます

関連する問題