Lire en anglais

Partager via


Erreur du compilateur CS1922

Impossible d’initialiser un type 'type' avec un initialiseur de collection, car il n’implémente pas 'System.Collections.IEnumerable'

Pour utiliser un initialiseur de collection avec un type, le type doit implémenter IEnumerable. Cette erreur peut se produire si vous utilisez une syntaxe d’initialiseur de collection alors que vous voulez utiliser un initialiseur d’objet.

Pour corriger cette erreur

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

  • Si le type ne représente pas une collection, modifiez-le pour qu’il implémente IEnumerable . Vous pourrez ensuite utiliser des initialiseurs de collection pour initialiser les objets de ce type.

  • Si le type représente une collection et si vous n’avez pas accès au code source, initialisez ses éléments à l’aide de leurs constructeurs de classe ou d’autres méthodes 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 initializer.
        var tc2 = new TestClass { memberA = 1, memberB = "hello" }; // OK
    }
}

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

Voir aussi