167 votes

Initialiser IEnumerable <string> En C #

J'ai cet objet:

 IEnumerable<string> m_oEnum = null;
 

et j'aimerais l'initialiser. Essayé avec

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

mais il dit "IEnumerable ne contient pas une méthode pour ajouter une chaîne. Toute idée? Merci

251voto

sehe Points 123151

Ok, en ajoutant aux réponses que vous avez peut-être aussi à la recherche de

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

ou

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

122voto

Bas Brekelmans Points 13799

IEnumerable<T> est une interface. Vous devez commencer avec un type concret (qui implémente IEnumerable<T> ). Exemple:

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

39voto

Bob Vale Points 11355

As string[] implémente IEnumerable

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

23voto

ChrisF Points 74295

IEnumerable n'est qu'une interface et ne peut donc pas être instancié directement.

Vous devez créer une classe concrète (comme un List )

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

vous pouvez ensuite le transmettre à tout ce qui vous attend à IEnumerable .

19voto

Kirill Polishchuk Points 28058
public static IEnumerable<string> GetData()
{
    yield return "1";
    yield return "2";
    yield return "3";
}

IEnumerable<string> m_oEnum = GetData();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X