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

Dart中能否通过一行代码初始化List?类似C#集合初始化器

当然可以在Dart里用一行代码初始化List!不过你写的C#风格new List<int>{ 1,2,5,9 }语法在Dart里是不支持的,咱们有更简洁的专属写法:

1. 最常用的字面量初始化法(推荐)

直接用方括号包裹元素就能创建List,Dart会自动帮你处理类型推断:

// 显式指定类型
List<int> options = [1, 2, 5, 9];

// 让Dart自动推断类型(更简洁)
var options = [1, 2, 5, 9]; // Dart会识别为List<int>

2. 创建不可变List

如果需要一个不能修改元素的只读List,可以用const关键字:

// 显式指定类型的不可变List
final List<int> options = const [1, 2, 5, 9];

// 简化写法
const options = [1, 2, 5, 9];

注:用const声明的List完全不可变,连元素都不能修改;如果只是想禁止修改List的长度(比如不能add/remove元素,但可以修改已有元素),可以用List.unmodifiable():

var options = List.unmodifiable([1, 2, 5, 9]);

3. 基于构造函数的初始化(不推荐,除非特殊场景)

如果你一定要通过List构造函数来初始化,也可以这样写,但这种写法不如字面量简洁:

List<int> options = List<int>.from([1, 2, 5, 9]);

总的来说,Dart的集合初始化语法虽然和C#的collection initializer不一样,但同样高效简洁,字面量写法是日常开发的首选。

内容的提问来源于stack exchange,提问作者atreeon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:40:31