我不明白 Intellisense 建议用什么来替代我现有的代码(如图所示)
万一图像稍后被删除,图中的 Intellisense 建议建议替换
List<int> x = new List<int>();
x.AddRange(Enumerable.Range(0, 300));
与
List<int> x = [.. Enumerable.Range(0, 300)];
我假设
..
是 C# 8.0 中引入的范围运算符,但没有关于此建议用法的文档。
如果有人可以解释 [x..y] 在实例化新列表方面的特定用法的“幕后”发生的情况,我将不胜感激。
正如 Jeanot Zubler 评论的那样:这是 C# 12 的新集合表达式,昨天随 .NET 8 一起发布。
它允许例如以下语法:
int[] row0 = [1, 2, 3];
int[] row1 = [4, 5, 6];
int[] row2 = [7, 8, 9];
int[] single = [..row0, ..row1, ..row2];
或者在你的情况下是这样的:
List<int> x = [.. Enumerable.Range(0, 300)];
如果我理解正确的话,
..
是一种“扁平化”运算符(官方:“扩展运算符”)。