Visual Studio IDE0305建议:[.. queue]语法替代ToArray()的含义解析
[.. 集合]语法的含义解析 你看到的[.. queue]是C# 10及更高版本引入的集合表达式中的展开运算符,它的作用是将一个可枚举对象(比如代码里的Queue<Foo>)的所有元素展开,用来初始化新的集合实例(此处是Foo[]数组)。
两种写法的等价性
原代码:
Queue<Foo> queue; // ... Foo[] foos = queue.ToArray();
Visual Studio推荐的简化写法:
Foo[] foos = [.. queue];
这两段代码的功能完全一致,都是将Queue中的所有元素复制到新创建的Foo[]数组中。
展开运算符的其他用法
除了单独展开单个集合,它还支持更灵活的集合组合:
- 合并多个可枚举集合:
var combinedArray = [.. queueA, .. queueB]; - 混合集合元素与单个元素:
var mixedArray = [new Foo(), .. queue, anotherFoo]; - 用于初始化其他集合类型(只要目标类型支持集合表达式):
List<Foo> fooList = [.. queue];
内容的提问来源于stack exchange,提问作者M.M
相关产品推荐
相关产品推荐

