Ler em inglês

Compartilhar via


Erro do Compilador CS1922

O inicializador de coleção requer seu tipo 'type' para implementar System.Collections.IEnumerable.

Para usar um inicializador de coleção com um tipo, o tipo deve implementar IEnumerable. Esse erro poderá ocorrer se você usar acidentalmente a sintaxe do inicializador de coleção quando você pretende usar um inicializador de objeto.

Para corrigir este erro

  • Se o tipo não representar uma coleção, use a sintaxe do inicializador de objeto em vez da sintaxe do inicializador de coleção.

  • Se o tipo representar uma coleção, modifique-a para implementar IEnumerable, antes que você possa usar inicializadores de coleção para inicializar objetos desse tipo.

  • Se o tipo representa uma coleção e você não tem acesso ao código-fonte, basta inicializar seus elementos usando seus construtores de classe ou outros métodos de inicialização.

Exemplo

O código a seguir produz CS1922:

// cs1922.cs
public class Test
{
    public static void Main()
    {
        // Collection initializer.
        var tc = new TestClass  {1,"hello"} ; // CS1922

        // Object initializer.
        var tc2 = new TestClass { memberA = 1, memberB = "hello" }; // OK
    }
}

public class TestClass
{
    public int memberA { get; set; }
    public string memberB { get; set; }
}

Confira também