Ler em inglês

Partilhar 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. Este erro pode ocorrer se você acidentalmente usar a sintaxe do inicializador de coleção quando você pretendia 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 de poder 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:

C#
// 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; }
}

Consulte também