Длина списка с условностями в дротике - PullRequest
0 голосов
/ 08 октября 2019

Есть ли способ получить 4 вместо 2 в результате?

List<String> test = [
      'first',
      'second',
      if (false) 'third',
      if (false) 'fourth',
    ];

    print('length: ' + test.length.toString());

1 Ответ

1 голос
/ 08 октября 2019

Свойство length в списках возвращает количество элементов в списке. В вашем примере вы вставляете только два значения (из-за условия), поэтому длина 4 не будет иметь смысла и создаст проблемы, когда вы, например, захотите перебрать список.

Однако вы можете добавить нулевые элементыесли условие ложно, например:

void main() {
  List<String> list = [
    'first',
    'second',
    (false) ? 'third' : null,
    (false) ? 'fourth' : null,
  ];

  final listLengthIncludingConditions = list.length;

  list.removeWhere((x) => x != null);

  print('Number of possible elements in list: $listLengthIncludingConditions'); // 4
  print('Number of elements in list: ${list.length}'); // 2
}

Затем можно сохранить длину и удалить нулевые элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...