你如何将字符串添加到C#的IList 从IronRuby的?(How do you add a

2019-10-28 10:09发布

我得到以下异常,当我尝试使用Ruby脚本修改C#字符串列表。

未处理的异常信息:System.ArgumentException:值“斯科特”不是类型“System.String”,不能这个泛型集合中使用。

C#

IList<string> names = new List<string>();
names.Add("scott");
names.Add("jason");

ScriptRuntime runtime = IronRuby.Ruby.CreateRuntime();
ScriptEngine engine = runtime.GetEngine("IronRuby");
ScriptScope scope = engine.CreateScope();
scope.SetVariable("names", names);
engine.ExecuteFile("test.rb", scope);

foreach (var name in names)
{
   Console.WriteLine(name);
}

红宝石

names.map! { |item| item.capitalize}

Answer 1:

添加to_clr_string到Ruby代码:

names.map! { |item| item.capitalize.to_clr_string }


文章来源: How do you add a string to a c# IList from IronRuby?