Da Sie jetzt angegeben haben, dass Sie es hinzufügen möchten, ist das, was Sie möchten, nicht einfach, IEnumerable<T>sondern zumindest eine ICollection<T>. Ich empfehle einfach ein List<T>solches zu verwenden:
List<object> myList=new List<object>();
myList.Add(1);
myList.Add(2);
myList.Add(3);
Sie können myList überall dort verwenden, wo dies IEnumerable<object>erwartet wird, da es List<object>implementiert wird IEnumerable<object>.
(alte Antwort vor der Klärung)
Sie können keine Instanz von erstellen, IEnumerable<T>da es sich um eine normale Schnittstelle handelt (manchmal ist es möglich, eine Standardimplementierung anzugeben, diese wird jedoch normalerweise nur mit COM verwendet).
Was Sie also wirklich wollen, ist eine Klasse zu instanziieren , die die Schnittstelle implementiert IEnumerable<T>. Das Verhalten hängt von der gewählten Klasse ab.
Für eine leere Sequenz verwenden Sie:
IEnumerable<object> e0=Enumerable.Empty<object>();
Für eine nicht leere Aufzählung können Sie eine Sammlung verwenden, die implementiert wird IEnumerable<T>. Gemeinsame Entscheidungen sind das Array T[], List<T>oder wenn Sie Unveränderlichkeit wollen ReadOnlyCollection<T>.
IEnumerable<object> e1=new object[]{1,2,3};
IEnumerable<object> e2=new List<object>(){1,2,3};
IEnumerable<object> e3=new ReadOnlyCollection(new object[]{1,2,3});
Eine weitere gängige Methode zur Implementierung IEnumerable<T>ist die in C # 3 eingeführte Iteratorfunktion :
IEnumerable<object> MyIterator()
{
yield return 1;
yield return 2;
yield return 3;
}
IEnumerable<object> e4=MyIterator();