我试图初始化一个像常规列表一样的不可变列表,但是它告诉我它不会采用0个参数。如果我传递1个参数,2个参数等,它会抛出相同的错误。
public static readonly ImmutableList<object[]> AddressTestCases = new ImmutableList<object[]>
{
new object[]{ "", false },
new object[]{ "testestest", true },
};
我在这里做错了什么?有没有办法在不使用.Add?
的情况下执行此操作答案 0 :(得分:4)
好的ImmutableList有一个你应该使用的创建方法
public ImmutableList<int> ImmutableListCreate()
{
return ImmutableList.Create<int>(1, 2, 3, 4, 5);
}
答案 1 :(得分:0)
您使用的语法是而不是调用您认为的构造函数。它调用空构造函数,然后调用.Add
后台调用你给出的对象数组。
您需要使用其中一种构建器方法:
public static readonly ImmutableList<object[]> AddressTestCases =
new[] {
new object[]{ "", false },
new object[]{ "testestest", true }
}).ToImmutableList();
答案 2 :(得分:0)
要创建ImmutableList,您必须使用在ImmutableList静态类上定义的静态工厂方法Create()。
这意味着你需要
public static readonly ImmutableList<object[]> AddressTestCases =
ImmutableList.Create(new object[] { "", false }, new object[] { "testtest", true });