Можно ли использовать NBuilder для создания коллекции случайных строк?
Довольно простой вопрос: могу ли я использовать NBuilder для создания коллекции из х случайных строк?
Я пытался...
// NOTE: Tags need to be lowercase.
return Builder<string>
.CreateListOfSize(10)
.WhereAll()
.Has(x => x = randomGenerator.Phrase(15))
.WhereTheFirst(1)
.Has(x => x = "time")
.AndTheNext(1)
.Has(x => x = "place")
.AndTheNext(1)
.Has(x => x = "colour")
.Build();
но это были ошибки во время выполнения, мне нужно было вызвать какой-то конкретный конструктор или что-то в этом роде.
У кого-нибудь есть идеи?
2 ответа
Решение
NBuilder создает объекты, используя конструктор по умолчанию (без параметров). Исключение, которое вы получаете, состоит в том, что у класса String нет конструктора по умолчанию.
Чтобы создать список случайных строк, вы можете использовать метод Phrase внутри цикла. Может быть, не так чисто, как отдельная цепочка NBuilder, но она выполняет свою работу:
List<string> stringsList = new List<string>();
var generator = new RandomGenerator();
for (int i = 0; i < 10; i++)
{
stringsList.Add(generator.Phrase(15));
}
return stringsList;
Извините, что вернул старый поток к жизни, но я просто хотел поделиться этим решением / взломать:
var myList = Enumerable.Range(0, 10).Select(el => generator.Phrase(10));
Ваше мнение приветствуется:)