我试图用不同的来源填充Flutter中的ListView。所以,我有两个列表,
list1 = ['a', 'b', 'c']; #The list isn't of numeric type
list2 = ['2', '4'];
现在,我可以使用spread
运算符将它们组合起来并获得以下输出
[a, b, c, 2, 4]
但是我希望输出像-
[a, 2, b, 4, c]
如何实现?什么是最惯用的方法?
答案 0 :(得分:2)
构建Iterable
没有方法zip
,但是您可以编写如下内容:
Iterable<T> zip<T>(Iterable<T> a, Iterable<T> b) sync* {
final ita = a.iterator;
final itb = b.iterator;
bool hasa, hasb;
while ((hasa = ita.moveNext()) | (hasb = itb.moveNext())) {
if (hasa) yield ita.current;
if (hasb) yield itb.current;
}
}
然后使用zip
final list1 = ['a', 'b', 'c'];
final list2 = ['2', '4'];
final res = zip(list1, list2);
print(res); // (a, 2, b, 4, c)
答案 1 :(得分:0)
我猜是这样:
List list1 = [1, 3, 5];
List list2 = [2, 4];
print([...list1, ...list2]..sort());