C#中[.. value]列表初始化语法的名称及工作原理咨询
关于C#中
[.. value]语法的说明 这个[.. value]是C# 12及后续版本引入的集合表达式(Collection Expression)里的展开元素(Spread Element),是简化集合创建的语法糖。
工作原理:
[ ]是集合表达式的基础语法,用来声明集合实例;..作为展开运算符,会接收一个实现了IEnumerable<T>的对象(这里string本质是char的序列,天然实现了IEnumerable<char>),把它包含的所有元素逐个“展开”到新创建的集合中;- 编译器会根据目标变量的类型(这里是
List<char>)自动生成对应的集合实例,不需要显式调用ToList()方法,最终效果和value.ToList<char>()完全一致,但写法更简洁。
额外说明:
- 展开运算符不仅能用于
string,任何实现了IEnumerable<T>的类型(比如数组、List<T>、HashSet<T>等)都可以用..展开; - 还可以结合固定元素一起使用,比如
['#', .. value, '!'],这样会创建一个开头是#、中间包含value的所有字符、结尾是!的List<char>。
内容的提问来源于stack exchange,提问作者damdamo
相关产品推荐
相关产品推荐

