List dart中带条件的列表的长度

List dart中带条件的列表的长度,list,dart,List,Dart,有没有办法得到4而不是2 List<String> test = [ 'first', 'second', if (false) 'third', if (false) 'fourth', ]; print('length: ' + test.length.toString()); 列表上的length属性返回列表中的元素数。在您的示例中,由于条件的原因,您只插入了两个值,因此4的长度没有意义,并且在您(例如)想要迭

有没有办法得到4而不是2

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

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

列表上的length属性返回列表中的元素数。在您的示例中,由于条件的原因,您只插入了两个值,因此4的长度没有意义,并且在您(例如)想要迭代列表时会出现问题

但是,如果条件为false,则可以添加null元素,如下所示:

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
}

然后可以保存长度并删除空元素。

列表上的length属性返回列表中的元素数。在您的示例中,由于条件的原因,您只插入了两个值,因此4的长度没有意义,并且在您(例如)想要迭代列表时会出现问题

但是,如果条件为false,则可以添加null元素,如下所示:

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
}

然后可以保存长度并删除空元素。

我不能将空元素用作列表中的元素,因为它会使我的UI崩溃。我不想通过获取长度得到4,但可能还有另一种方法。更新答案,使列表在计数后不包含空元素。也考虑一下这个方法。这是一个很难解决的问题。我不能使用null作为列表元素,因为它会使我的UI崩溃。我不想通过获取长度得到4,但可能还有另一种方法。更新答案,使列表在计数后不包含空元素。也考虑一下这个方法。这是一个老套的解决办法。