Dart如何从列表中提取所有指定字符长度的字符串元素
实现方案
Dart 内置的 Iterable 过滤方法可以直接实现需求,无需额外引入依赖,完整示例代码如下:
void main() { List test = ['hello', 'two', 'mountain', 'day', 'tomorrow', 'bye', 'sad', 'yesterday']; // 过滤长度为3的字符串 List expectedResult = test.where((element) => element.length == 3).toList(); print(expectedResult); // 输出: [two, day, bye, sad] }
代码说明
where()方法会遍历列表的每一个元素,回调返回true的元素会被保留- 因为
where()返回的是Iterable类型,所以最后调用toList()转成List类型即可 - 如果列表可能存在非字符串元素,可加类型判断避免运行报错,优化写法如下:
List expectedResult = test.where((element) => element is String && element.length == 3).toList();
内容的提问来源于stack exchange,提问作者Jan
相关产品推荐
相关产品推荐

