2011-09-27 17 views
7

Este:¿Cómo especificar un inicializador literal para Pila o Cola?

List<string> set = new List<string>() { "a","b" }; 

funciona bien, pero:

Stack<string> set = new Stack<string>() { "a","b" }; 
Queue<string> set = new Queue<string>() { "a","b" }; 

falla con:

...does not contain a definition for 'Add' 

que no que me pregunte por qué el compilador era tan tonto como para pedir Agregar.

Entonces, ¿cómo debería una inicialización en un constructor de Queue/Stack?

Respuesta

11

inicializadores de cobro son una característica compilador que llamar al método Add con cada elemento que pase. Si no hay un método Add, no puede usarlo.

su lugar, puede llamar al constructor Stack o Queue que toma un IEnumerable<T>:

var stack = new Stack<int>(new [] { 1, 2, 3 }); 
+0

Niza solución - gracias. – ChrisJJ

Cuestiones relacionadas