oldLength
newLength
newLength < oldLength
newLength > oldLength
我写的:
List<T> cutList<T>(List<T> oldList, int newLength) { return new List.generate(newLength, (index) { if (index < oldList.length) return oldList[index]; else return null; }); }
在简单性方面,有更好的方法吗?在效率方面呢?
如果这是一个可增长的列表,你不介意改变它:
oldList.length = newLength; return oldList;
如果需要新列表:
return <T>[] ..length = newLength ..setRange(0, min(newLength, oldList.length), oldList);
(何处) min 从导入 dart:math ) 有很多种方法。任何只复制每个元素一次的东西都是好的。
min
dart:math