2010-10-10 64 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

相關問題