我有一个键值对列表
我想从类似键的索引中搜索索引(在列表中获取索引== 0的索引),然后从该索引中搜索值。
或将值更改为key == 1
void main() {
var listAnswers = [];
var keyPair = {
'Key': 0,
'value': false,
};
listAnswers.add(keyPair);
keyPair = {
'Key': 1,
'value': 1,
};
listAnswers.add(keyPair);
keyPair = {
'Key': 2,
'value': DateTime.now(),
};
listAnswers.add(keyPair);
print(listAnswers);
var index = listAnswers.getIndex('key', 0)
// got the index 1 (where key = 0, and value = false)
listAnswers[i].value = true; // then I want to do something like this.
}
答案 0 :(得分:1)
var index = listAnswers.indexWhere((pair) => pair['Key'] == 0);
print(index);
listAnswers[index]['value'] = true;
答案 1 :(得分:0)
您已经这样声明keyPair
var keyPair = {
'Key': 0,
'value': false,
};
keyPair
是Map
。
要访问地图内的键,您必须使用keyPair['Key']
。
现在,当您将此地图添加到列表中时,您将拥有一个地图列表。
获取键为0的地图的索引。
var index = listAnswers.indexWhere((map) => map['Key'] == 0);
现在可以更改该索引处的值。
// listAnswers[index] returns a map
// to access the 'value' you need to use listAnswers[index]['value']
listAnswers[index]['value'] = true;