使用NBuilder可以构建一个随机字符串集合吗?

14

这是一个非常简单的问题:我可以使用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个回答

15

抱歉翻旧帖,但我只是想分享这个解决方案/黑科技:

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

感谢您的反馈:)


8
return Enumerable.Range(0, size).Select(el => GetRandom.String(10)); 也能运行。 - Sherlock

9

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;

那么NBuilder就无法创建随机字符串了吗? - Pure.Krome
1
一个随机字符串 - 可以。使用单个NBuilder方法链生成随机字符串列表 - 据我所知不行。我已更新我的答案,包括一种生成列表的方法。 - Pedro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接