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

如何使用C#12集合表达式初始化List<List<int>>?

C# 12 锯齿状集合的集合表达式正确写法

我有一段创建锯齿状集合的代码:

var intListList = new List<List<int>> {
    new() { 1, 2, 3 }
};

想要改用C# 12的集合表达式简化写法,但Resharper(EAP)给出的以下写法无法通过编译:

var intListList = new List<List<int>> {
    [1, 2, 3]
};

正确的可编译写法需要显式声明变量的完整类型,直接使用嵌套的集合表达式即可,不需要new()或外层的集合初始化器语法:

// 可编译!
List<List<int>> intListList = [[1, 2, 3]];

之所以原来的写法失败,是因为编译器无法在var配合new List<List<int>> { ... }的上下文里,将内层的[1,2,3]推断为List<int>类型;而显式声明变量类型后,编译器能明确解析嵌套集合表达式对应的类型,从而正常编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 03:27:05