Как добавить строку в c # IList <string>из IronRuby? - PullRequest
0 голосов
/ 17 марта 2011

Я получаю следующее исключение при попытке использовать скрипт ruby ​​для изменения списка строк c #.

Необработанное исключение: System.ArgumentException: значение «Скотт» не относится к типу «System.String» и не может использоваться в этой универсальной коллекции.

с #

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}

1 Ответ

3 голосов
/ 17 марта 2011

Добавьте to_clr_string к коду рубина:

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