2010-10-10 36 views
9

非常简单的问题:我可以使用NBuilder创建一个x号的随机字符串集合吗?是否可以使用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(); 

但它的运行时间约我需要调用一些特定的构造函数或示数的东西,一些东西。

任何人有任何想法?

回答

7

NBuilder通过使用默认(无参数)构造函数创建对象。您收到的异常是因为String类没有默认构造函数。

要创建随机字符串列表,可以在循环内使用短语方法。也许不是那样干净单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; 
+0

那么NBuilder不能创建随机字符串? – 2011-02-01 06:34:22

+0

随机字符串 - 是的。使用单个NBuilder方法链的随机字符串列表 - 不是我所知道的。我已经更新了我的答案,以包含生成列表的方式。 – Pedro 2011-02-01 15:46:59

12

很抱歉把一个古老的线程起死回生,但我只是想分享这一解决方案/黑客:

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

您的反馈意见是赞赏:)

+0

heh - cute :) :) – 2014-01-22 02:45:04

+5

'return Enumerable.Range(0,size).Select(el => GetRandom.String(10));'也可以 – Sherlock 2016-01-17 21:05:25

相关问题