Freigeben über


Compilerfehler CS1922

Auflistungsinitialisierer erfordert, dass sein type-Typ „System.Collections.IEnumerable“ implementiert.

Um einen Auflistungsinitialisierer mit einem Typ zu verwenden, muss der Typ IEnumerableimplementieren. Dieser Fehler kann auftreten, wenn Sie versehentlich Auflistungsinitialisierersyntax anstelle eines Objektinitialisierers verwenden.

So beheben Sie diesen Fehler

  • Wenn der Typ keine Auflistung darstellt, verwenden Sie Objektinitialisierersyntax anstelle von Auflistungsinitialisierersyntax.

  • Wenn der Typ eine Auflistung darstellt, ändern Sie ihn so, dass er IEnumerable implementiert, bevor Sie Auflistungsinitialisierer zum Initialisieren von Objekten dieses Typs verwenden können.

  • Wenn der Typ eine Auflistung darstellt und Sie keinen Zugriff auf den Quellcode haben, initialisieren Sie nur seine Elemente, indem Sie deren Klassenkonstruktoren oder andere Initialisierungsmethoden verwenden.

Beispiel

Im folgenden Code generiert den Fehler 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; }
}

Siehe auch