如何从Dart Flutter中的键或键值对获取索引

时间:2020-09-21 15:46:32

标签: list flutter dictionary dart

我有一个键值对列表

我想从类似键的索引中搜索索引(在列表中获取索引== 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.

}

2 个答案:

答案 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,
  };

keyPairMap

要访问地图内的键,您必须使用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;