首先,这是一个与飞镖无关的常见问题
语言,但因为Dart需要它,所以我这样标记它。
我有一个包含递增数字的对象列表
List<MyObject> myObjectList = [
MyObject(1),
MyObject(2),
...
MyObject(10),
];
class MyObject {
int order;
MyObject(this.order);
}
我现在想从列表中删除一个项目,并减少以下订单号。比方说,我删除了订单号为5的项目,订单号为6、7、8、9和10的项目应该减少一,得到一个列表,如下所示:
List<MyObject> myObjectList = [
MyObject(1),
MyObject(2),
...
MyObject(9),
];
这可以通过for循环检查项目编号轻松完成:
var removedOrder = 5;
for (var item in myObjectList){
if (item.order > removedOrder) {
item.order -= 1;
}
}
这真的很简单理解,应该有效,但老实说,简单是无聊和丑陋的。
有没有一种方法可以在不需要编写for循环的情况下实现所需的结果?
此外,你对优化逻辑部分有什么建议?