有没有办法得到 4 而不是 2 结果?
List<String> test = [
'first',
'second',
if (false) 'third',
if (false) 'fourth',
];
print('length: ' + test.length.toString());
Run Code Online (Sandbox Code Playgroud)
列表的 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
}
Run Code Online (Sandbox Code Playgroud)
然后您可以保存长度并删除空元素。