如何在Dart中获取列表中首个最长的字符串?
获取Dart列表中第一个长度最长的字符串
给定列表:
List<String> list = ['hi', 'hello', 'frozen', 'big mistake', 'cool daddy'];
这里提供两种简洁的实现方式:
方式一:遍历列表记录最长项
直接遍历列表,维护当前最长的字符串,遇到更长的就更新,长度相同时保留先出现的项:
String? findLongestFirst(List<String> list) { if (list.isEmpty) return null; // 处理空列表情况 String longest = list.first; for (String str in list) { if (str.length > longest.length) { longest = str; } } return longest; } // 调用示例 var result = findLongestFirst(list); print(result); // 输出: big mistake
方式二:使用reduce方法
利用Dart集合的reduce方法,一行逻辑就能完成比较,同样会保留第一个出现的最长项:
String? findLongestFirst(List<String> list) { if (list.isEmpty) return null; // 处理空列表情况 return list.reduce((current, next) => next.length > current.length ? next : current); } // 调用示例 var result = findLongestFirst(list); print(result); // 输出: big mistake
注:列表中big mistake和cool daddy长度均为9,但big mistake先出现,因此最终返回它。
内容的提问来源于stack exchange,提问作者Cenk YAGMUR
相关产品推荐
相关产品推荐

