在 C# 中构造调用表达式由目标确定类型。 也就是说,如果已知表达式的目标类型,则可以省略类型名称,如下面的示例所示
List<int> xs = new();
List<int> ys = new(capacity: 10_000);
List<int> zs = new() { Capacity = 20_000 };
Dictionary<int, List<int>> lookup = new()
{
[1] = new() { 1, 2, 3 },
[2] = new() { 5, 8, 3 },
[5] = new() { 1, 0, 4 }
};