编译器错误 CS1922
集合初始值设定项需要其类型“type”实现 System.Collections.IEnumerable。
要通过类型集合初始值设定项,该类型必须实现 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; }
}