Можно ли использовать NBuilder для создания коллекции случайных строк? - PullRequest
10 голосов
/ 10 октября 2010

довольно простой вопрос: могу ли я использовать NBuilder для создания коллекции x число случайных строк?

Я пытался ...

// 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 ]

12 голосов
/ 22 января 2014

Извините, что вернул старый поток к жизни, но я просто хотел поделиться этим решением / взломать:

var myList = Enumerable.Range(0, 10).Select(el => generator.Phrase(10));

Ваш отзыв приветствуется:)

8 голосов
/ 01 февраля 2011

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;
...