Ошибка компилятора CS1922
Обновлен: Ноябрь 2007
Сообщение об ошибке
Для реализации интерфейса System.Collections.IEnumerable инициализатору коллекции требуется тип "тип".
Collection initializer requires its type 'type' to implement System.Collections.IEnumerable.
Чтобы использовать инициализатор коллекции с типом, этот тип должен реализовывать интерфейс IEnumerable. Эта ошибка может возникать, если для инициализатора объекта случайно используется синтаксис инициализатора коллекции.
Исправление ошибки
Если тип не представляет коллекцию, то вместо синтаксиса инициализатора коллекции следует использовать синтаксис инициализатора объекта.
Если тип представляет коллекцию, измените его, чтобы прежде чем использовать инициализаторы коллекции для инициализации объектов этого типа, тип реализовал интерфейс IEnumerable.
Если тип представляет коллекцию, однако его исходный код недоступен, просто инициализируйте элементы этого типа с помощью конструкторов их класса или других методов инициализации.
Пример
В следующем коде создается ошибка CS1922:
// cs1922.cs
public class Test
{
public static void Main()
{
// Collection initializer.
var tc = new TestClass {1,"hello"} ; // CS1922
// Object initalizer.
var tc2 = new TestClass { memberA = 1, memberB = "hello" }; // OK
}
}
public class TestClass
{
public int memberA { get; set; }
public string memberB { get; set; }
}
См. также
Ссылки
Инициализаторы объектов и коллекций (Руководство по программированию в C#)