Läs på engelska

Dela via


Kompilatorfel CS1922

Insamlingsinitieraren kräver dess typ för att implementera System.Collections.IEnumerable.

För att kunna använda en insamlingsinitierare med en typ måste typen implementera IEnumerable. Det här felet kan inträffa om du av misstag använder insamlingsinitieringssyntax när du tänker använda en objektinitierare.

Så här åtgärdar du det här felet

  • Om typen inte representerar en samling använder du initieringssyntax för objekt i stället för insamlingsinitieringssyntax.

  • Om typen representerar en samling ändrar du den så att den implementeras IEnumerable innan du kan använda insamlingsinitierare för att initiera objekt av den typen.

  • Om typen representerar en samling och du inte har åtkomst till källkoden initierar du bara dess element med hjälp av deras klasskonstruktorer eller andra initieringsmetoder.

Exempel

Följande kod genererar 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; }
}

Se även