android - 更新列表中的对象
问题描述
我在一个类中调用一个函数,它将更新一个列表对象。我已成功获得所需的对象并更改其中的值。如何更新回原始列表?
这是我的代码:
void updateTask(
Guid id, String title, String start, String end, String timeleft) {
final taskToBeUpdated = _tasks.firstWhere((element) => element.id == id);
taskToBeUpdated.title = title;
taskToBeUpdated.start = start;
taskToBeUpdated.end = end;
taskToBeUpdated.timeLeft = timeleft;
}
我知道我可以使用 forloop 来实现这一点
for (var i = 0; i < _tasks.length; i++) {
if (_tasks[i].id == id) {
_tasks[i].title = title;
_tasks[i].start = start;
_tasks[i].end = end;
_tasks[i].timeLeft = timeleft;
}
}
但是有没有更短的方法?
解决方案
您的第一个代码应该直接修改列表中的对象,因为 dart 通过引用传递它。
尝试运行此代码以了解其工作原理:
List a = [{"dod":1}, {"dod":3}];
Map _b = a.firstWhere((e)=>e["dod"]==1);
_b["dod"] = 2;
print (a);
推荐阅读
- c# - 算法 - 在 C# 中初始化一个随机数组
- kubernetes - 如何告诉 kubernetes 不要重新创建 pod?
- php - SQL 更新语句未更新 phpmyadmin 记录
- certificate - 程序员证书?
- airflow - 如何在没有密钥的情况下将 Airflow 连接到 AWS S3?
- java - LeanFT:无法调用具有非原始参数的方法:没有使用 cookie 注册对象:[object Object]
- php - 如何在 Smarty 代码中查看数组详细信息?
- serverless-framework - 未找到无服务器命令“项目”
- android - 无法在 DomainComponent 中提供应用程序(Dagger 2)
- android - 以编程方式为片段设置上下文以进行测试