2011-07-04 19 views
79

ho questo oggetto:inizializzazione IEnumerable <string> In C#

IEnumerable<string> m_oEnum = null; 

e mi piacerebbe inizializzarlo. Provato con

IEnumerable<string> m_oEnum = new IEnumerable<string>() { "1", "2", "3"}; 

ma dire "doesnt IEnumerable contiene un metodo per la stringa di add. Qualche idea? Grazie

risposta

130

Ok, aggiungendo alle risposte dichiarato che potrebbe essere anche alla ricerca di

IEnumerable<string> m_oEnum = Enumerable.Empty<string>(); 

o

IEnumerable<string> m_oEnum = new string[]{}; 
+1

'Enumerable.Empty ()' è il papà. Proprio quello di cui avevo bisogno. –

71

IEnumerable<T> è un'interfaccia. È necessario per iniziare con un tipo di cemento (che implementa IEnumerable<T>). Esempio :

IEnumerable<string> m_oEnum = new List<string>() { "1", "2", "3"}; 
4

non è possibile creare un'istanza di un'interfaccia - è necessario fornire una concreta attuazione di IEnumerable

21

Come.implementa IEnumerable

IEnumerable<string> m_oEnum = new string[] {"1","2","3"} 
+1

DownVoter, perché? –

15

IEnumerable è solo un'interfaccia e quindi non può essere istanziata direttamente.

È necessario creare una classe concreta (come un List)

IEnumerable<string> m_oEnum = new List<string>() { "1", "2", "3" }; 

si può quindi passare questo a qualsiasi cosa si aspetta un IEnumerable.

9
public static IEnumerable<string> GetData() 
{ 
    yield return "1"; 
    yield return "2"; 
    yield return "3"; 
} 

IEnumerable<string> m_oEnum = GetData(); 
+6

Anche se un po 'eccessivo, +1 per usare resa –

+0

@AdrianCarneiro +1 per la rima – 5argon

Problemi correlati