Partager via


Erreur du compilateur CS1922

Mise à jour : novembre 2007

Message d'erreur

L'initialiseur de collection nécessite que son type 'type' implémente System.Collections.IEnumerable.
Collection initializer requires its type 'type' to implement System.Collections.IEnumerable.

Pour utiliser un initialiseur de collection avec un type, ce type doit implémenter IEnumerable. Cette erreur peut se produire si vous utiliser accidentellement une syntaxe d'initialiseur de collection au lieu d'un initialiseur d'objet.

Pour corriger cette erreur

  • Si le type ne représente pas une collection, utilisez une syntaxe d'initialiseur d'objet au lieu d'une syntaxe d'initialiseur de collection.

  • Si le type représente une collection, modifiez-le pour implémenter IEnumerable afin d'utiliser des initialiseurs de collections pour initialiser des objets de ce type.

  • Si le type représente une collection et que vous n'avez pas accès au code source, initialisez simplement ses éléments à l'aide de leurs constructeurs de classe ou d'une autre méthode d'initialisation.

Exemple

Le code suivant génère l'erreur CS1922 :

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

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

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

Voir aussi

Référence

Initialiseurs d'objets et de collection (Guide de programmation C#)