Ste*_*403 1 list indexof dart flutter
我想获取此列表中名称为 test 的 ListA的索引
\n头等舱
\nclass ListA {\n String name;\n\n ListA({this.name});\n}\nRun Code Online (Sandbox Code Playgroud)\n二等舱
\nList<ListA> abc = [\n\n ListA(name: 'test'),\n\n];\nRun Code Online (Sandbox Code Playgroud)\n之后,我得到了一个带按钮的无状态 Wiget,\n这就是 onPressed 方法
\nonPressed: () {\n i = abc.indexOf(ListA(name: 'test'));\n print(i);\n },\nRun Code Online (Sandbox Code Playgroud)\n我找不到\xc2\xb4t任何错误,但不幸的是\xc2\xb4s总是返回-1,这意味着它无法\xc2\xb4t找到它
\n我究竟做错了什么 ?
\n发生这种情况是因为您ListA在调用 时创建了一个新的indexOf,这意味着您有两个不同的ListA。这类似于执行以下操作:
print(ListA(name: 'test') == ListA(name: 'test'));
Run Code Online (Sandbox Code Playgroud)
这将打印,false因为它们不是同一个对象。
您可以尝试以下方法之一:
ListA,并调用indexOf传递相同的引用const的实例ListA(将name字段标记为final,添加const到构造函数定义及其调用中)==运算符and ,以便两个不同的实例如果字段/项相同则被视为相同hashCodeListAListAindexOf,使用indexWhere并检查名称 ( indexWhere((l) => l.name == 'test'))| 归档时间: |
|
| 查看次数: |
4001 次 |
| 最近记录: |