C# 使用默认值初始化队列或堆栈?
可以使用预先放置的值初始化列表:C# 使用默认值初始化队列或堆栈?,c#,stack,queue,C#,Stack,Queue,可以使用预先放置的值初始化列表: List L1=新列表{1,2,3} 对于队列,是否有上述的等效项?我的想法是: Queue Q1=新队列{1,2,3} 这不管用。有什么解决办法吗 是 Queue Q1=新队列(); Q1.排队(1); Q1.排队(2); Q1.排队(3); 唯一有效的解决方案是使用构造函数 Queue Q1=新队列(新[]{1,2,3}); 或 List List=新列表{1,2,3}; 队列Q1=新队列(列表); 试试这个 Queue<int> Q1 =
List L1=新列表{1,2,3}代码>
对于队列,是否有上述的等效项?我的想法是:
Queue Q1=新队列{1,2,3}代码>
这不管用。有什么解决办法吗
是
Queue Q1=新队列();
Q1.排队(1);
Q1.排队(2);
Q1.排队(3);
唯一有效的解决方案是使用构造函数
Queue Q1=新队列(新[]{1,2,3});
或
List List=新列表{1,2,3};
队列Q1=新队列(列表);
试试这个
Queue<int> Q1 = new Queue<int>(new int[] { 1, 2, 3} );
Queue Q1=新队列(新int[]{1,2,3});
请参见:特别是:
这个新语法的意义只是创建一个
MyNames使用其无参数构造函数(构造函数参数可以是
并使用每个
字符串
及
由此产生的语言设计是一种“基于模式”的方法。我们依靠
在用户使用其方法的特定名称时
编译器在编写时没有检查它。如果他们去换衣服
在一个程序集中添加到AddPair的名称,编译器不会
抱怨这一点,而是抱怨集合初始值设定项
坐在别的地方突然错过了一个超负荷呼叫
队列不支持Add方法,因此无法使用短表达式样式语法初始化。这确实是一种设计上的选择。幸运的是,您可以将集合传递给队列的构造函数。此解决方案需要实例化中间集合。上述解决方案并不适用。当然很明显。但如果有人没注意到,请在下面划线:)。
Queue<int> Q1 = new Queue<int>(new[] { 1, 2, 3 });
List<int> list = new List<int>{1, 2, 3 };
Queue<int> Q1 = new Queue<int>(list);
Queue<int> Q1 = new Queue<int>(new int[] { 1, 2, 3} );