List dart中带条件的列表的长度
有没有办法得到4而不是2List 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的长度没有意义,并且在您(例如)想要迭
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,但可能还有另一种方法。更新答案,使列表在计数后不包含空元素。也考虑一下这个方法。这是一个老套的解决办法。