我目前正在使用一个应用程序,该应用程序允许通过 rub 脚本在运行时添加和删除下拉列表中的项目。红宝石看起来像这样
SAFE = ;
return control if control.CyclesCount == 0;
control.Items.each{|item| control.Items.Remove(item) if item.Value.index('|').nil?};
return control;
control 是自定义用户控件,其 Items 是 ListItemCollction。我正在通过单元测试运行以使我的 Ruby 代码正确并遇到一些麻烦。我传入的 ListItemColletion 看起来像这样..
var lic = new ListItemCOllection {
new ListItem {Text = "Item2", Value = "8"},
new ListItem {Text = "Item1", Value = "1"},
new ListItem {Text = "Item3", Value = "3|1"},
new ListItem {Text = "Item4", Value = "4"},
new ListItem {Text = "Item5", Value = "5|2"},
new ListItem {Text = "Item6", Value = "6"}
}
这段代码似乎总是在 items 集合中留下 3 个项目,而不是留下 2 个项目和管道。3 取决于我放入物品的顺序(而按照这个顺序,Item1、Item3、Item5 离开)这让我相信它的移除搞砸了。我还尝试获取集合的副本,循环遍历它,从原始集合中删除,这样我就不会从正在迭代的集合中删除。我是 Ruby 的相对菜鸟,所以对我放轻松……但我可以使用一些建议。
谢谢