You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart中能否在列表链式调用中用三元运算符控制.where方法调用?

在Dart中能否在列表链式调用中插入条件判断?

你给出的示例代码无法直接运行,Dart不支持这种在链式调用中间直接嵌入三元运算符的语法。

不过可以通过调整三元运算符的位置,实现链式调用里的条件过滤,不需要拆分两次赋值:

final lists = List<dynamic>.from(
  isNotWhere 
      ? lists2.map((x) => Model.fromMap(x))
      : lists2.map((x) => Model.fromMap(x)).where((e) => e.deleted == deleted),
);

如果想避免重复调用map方法,还可以先把映射后的结果存起来:

final mappedItems = lists2.map((x) => Model.fromMap(x));
final lists = List<dynamic>.from(
  isNotWhere ? mappedItems : mappedItems.where((e) => e.deleted == deleted),
);

你自己想到的分步赋值写法是完全可行的,逻辑清晰,适合复杂条件下的场景;上面的链式写法则更紧凑,适合简单条件的情况。

内容的提问来源于stack exchange,提问作者Daniel Roldán

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:20:41