2011-12-05 14 views

Respuesta

9

Debe utilizar un IList<int> en lugar de IEnumerable<int> para ello:

IList<int> intYear = new List<int>(); 
intYear.Add(2011); 
// and so on 

IList<T> implementa IEnumerable<T> lo que puede pasar a cualquier método que tenga una IEnumerable<T> como argumento.

6

Es necesario utilizar un ICollection<T>, como IEnumerable<T> sólo se utiliza para iterar sobre colecciones.

ICollection<int> years = new List<T>(); 
years.Add(2010); 
years.Add(2011); 
3

IEnumerable no tiene un método Add. Deberías usar IList en su lugar.

IList<int> intYear = new List<int>(); 
intYear.Add(2010); 
+0

La sugerencia de reSharper: var intYear = new List {2010}; Me gusta más tu camino porque me olvidaré de cómo hacerlo si uso los atajos todo el tiempo. – Rich

0

Mediante el uso de Concat(IEnumerable) método de IEnumerable clase por primera vez puede llenar todos los valores a una lista y asignarlo a la lista IEnumerable.

+0

Si pudiera hacer que funcione, no sería simple. Hay formas más simples. – DonkeyMaster

+0

@DonkeyMaster, ¿hay algo malo en mi publicación? si está mal entonces puedes rechazarlo ¿verdad? –

+0

La interfaz 'IEnumerable ' no especifica un método 'Concat'. Hay un método de extensión, pero devuelve un tercer objeto nuevo. Ese comportamiento probablemente sorprenderá al OP. Al interpretar la publicación original, parece que lo que el OP necesita es un 'IList '. – DonkeyMaster

Cuestiones relacionadas