英語で読む

次の方法で共有


コンパイラ エラー CS1922

コレクション初期化子では、System.Collections.IEnumerable の実装にその型 'type' が必要です。

型を指定してコレクション初期化子を使用するには、この型に IEnumerableを実装する必要があります。 このエラーは、オブジェクト初期化子を使用するときに誤ってコレクション初期化子構文を使用した場合に発生する可能性があります。

このエラーを解決するには

  • この型がコレクションを表していない場合は、コレクション初期化子構文ではなくオブジェクト初期化子構文を使用します。

  • この型がコレクションを表している場合は、コレクション初期化子を使用してその型のオブジェクトを初期化する前に、型を変更して IEnumerable を実装します。

  • この型がコレクションを表し、ソース コードへのアクセス権がない場合は、クラス コンストラクターまたは他の初期化メソッドを使用してその要素を初期化します。

次のコードでは 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; }
}

関連項目