Я хочу создать новый экземпляр объекта IEnumerable<object>
Я могу это сделать?
IEnumerable<object> a = new IEnumerable<object>();
 Я хочу создать новый экземпляр объекта IEnumerable<object>
Я могу это сделать?
IEnumerable<object> a = new IEnumerable<object>();
Вы можете, например, создать экземпляр List<object>, который реализует IEnumerable<object>. Пример:
List<object> list = new List<object>();
list.Add(1);
list.Add(4);
list.Add(5);
IEnumerable<object> en = list;
CallFunction(en);
		Поскольку вы теперь указали, что хотите добавить к нему, вы не просто IEnumerable<T>, но по крайней мере ICollection<T>. Я рекомендую просто использовать List<T> следующим образом:
List<object> myList=new List<object>();
myList.Add(1);
myList.Add(2);
myList.Add(3);
Вы можете использовать myList везде, где ожидается IEnumerable<object>, поскольку List<object> реализует IEnumerable<object>.
(старый ответ до выяснения)
Вы не можете создать экземпляр IEnumerable<T>, поскольку он является обычным интерфейсом (иногда можно указать реализацию по умолчанию, но обычно используется только с COM).
Так что вы действительно хотите создать экземпляр класса, реализующего интерфейс IEnumerable<T>. Поведение меняется в зависимости от выбранного вами класса.
Для пустой последовательности используйте:
IEnumerable<object> e0=Enumerable.Empty<object>();
Для непустого перечисления вы можете использовать некоторую коллекцию, которая реализует IEnumerable<T>. Обычными являются массив T[], List<T> или если вы хотите неизменность 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});
Другим распространенным способом реализации IEnumerable<T> является функция итератора, представленная на С# 3:
IEnumerable<object> MyIterator()
{
  yield return 1;
  yield return 2;
  yield return 3;
}
IEnumerable<object> e4=MyIterator();
		Нет, вы не можете, так как IEnumerable - это интерфейс.
Вы должны иметь возможность создать пустой экземпляр большинства типов без интерфейса, которые реализуют IEnumerable, например: -
IEnumerable<object> a = new object[] { };
или
IEnumerable<object> a = new List<object>();
		 Другое решение было бы использовать  Empty.
IEnumerable<object> a = Enumerable.Empty<object>();
 на SO есть тема: лучше ли использовать Enumerable.Empty(), а не новый List для инициализации IEnumerable?
Нет, вы не можете этого сделать. Вместо этого используйте следующую строку кода:
IEnumerable<int> usersIds = new List<int>() {1, 2, 3}.AsEnumerable();
Надеюсь, это поможет.
Я хотел создать новый перечислимый объект или список и быть в состоянии добавить к нему.
Этот комментарий меняет все. Вы не можете добавить общий IEnumerable<T>. Если вы хотите остаться с интерфейсами в System.Collections.Generic, вам нужно использовать класс, который реализует ICollection<T> как List<T>.
Основная причина: мы не можем создать объект интерфейса, а IEnumerable - это интерфейс. Нам нужно создать объект класса, который реализует интерфейс. Это основная причина, по которой мы не можем напрямую создавать объект IEnumerable.
Нет IEnumerable - это интерфейс, вы не можете создать экземпляр интерфейса
вы можете сделать что-то вроде этого
IEnumerable<object> a = new object[0];