ImmutableList не содержит конструктор, который принимает 0 аргументов - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь инициализировать неизменяемый список как обычный список, но он говорит мне, что он не принимает 0 аргументов.Выдает ту же ошибку, если я передаю 1 аргумент, 2 аргумента и т. Д.

public static readonly ImmutableList<object[]> AddressTestCases = new ImmutableList<object[]>
{
    new object[]{ "", false },
    new object[]{ "testestest", true },
};

Что я здесь не так делаю?Есть ли способ сделать это без использования .Add?

Ответы [ 3 ]

0 голосов
/ 12 июня 2018

Ok ImmutableList имеет метод создания, который вы должны использовать

public ImmutableList<int> ImmutableListCreate()
{
    return ImmutableList.Create<int>(1, 2, 3, 4, 5);
}
0 голосов
/ 12 июня 2018

Для создания ImmutableList вы должны использовать статический фабричный метод Create (), определенный в статическом классе ImmutableList.

Это означает, что вам потребуется

public static readonly ImmutableList<object[]> AddressTestCases = 
    ImmutableList.Create(new object[] { "", false }, new object[] { "testtest", true });
0 голосов
/ 12 июня 2018

Синтаксис, который вы используете: , а не , вызывая конструктор, который вы думаете.Он вызывает пустой конструктор, а затем в фоновом режиме вызывает .Add для массивов объектов, которые вы дали.

Вам потребуется использовать один из методов построения:

public static readonly ImmutableList<object[]> AddressTestCases =
                          new[] {
                                   new object[]{ "", false }, 
                                   new object[]{ "testestest", true }
                                }).ToImmutableList();
...