Leer en inglés

Compartir a través de


Error del compilador CS1922

El inicializador de colección requiere que su tipo 'type' implemente System.Collections.IEnumerable.

Para usar un inicializador de colección con un tipo, el tipo debe implementar IEnumerable. Este error puede producirse si se usa accidentalmente sintaxis de inicializador de colección cuando se pretendía usar un inicializador de objeto.

Para corregir este error

  • Si el tipo no representa ninguna colección, use la sintaxis de inicializador de objeto en lugar de la sintaxis del inicializador de colección.

  • Si el tipo representa una colección, modifíquelo para implementar IEnumerable antes de usar inicializadores de colección para inicializar objetos de ese tipo.

  • Si el tipo representa una colección y no tiene acceso al código fuente, simplemente se inicializan sus elementos mediante el uso de sus constructores de clases u otros métodos de inicialización.

Ejemplo

El código siguiente produce el error 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; }
}

Vea también