2010-10-10 6 views
9

domanda abbastanza semplice: posso usare NBuilder per creare una raccolta di x numero di stringhe casuali?È possibile utilizzare NBuilder per creare una raccolta di stringhe casuali?

cercavo ...

// 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(); 

ma è stato eseguito in tempo erroring, qualcosa su cui avevo bisogno di chiamare un certo costruttore specifico o qualcosa del genere.

Qualcuno ha qualche idea?

risposta

7

NBuilder crea oggetti utilizzando il costruttore predefinito (senza parametri). L'eccezione che si sta ricevendo è perché la classe String non ha un costruttore predefinito.

Per creare un elenco di stringhe casuali, è possibile utilizzare il metodo Phrase all'interno di un ciclo. Forse non pulite come una singola catena NBuilder, ma ottiene il lavoro fatto:

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

quindi NBuilder non può creare stringhe casuali? –

+0

Una stringa casuale - sì. Un elenco di stringhe casuali che utilizzano una singola catena di metodi NBuilder, non di cui sono a conoscenza. Ho aggiornato la mia risposta per includere un modo di generare la lista. – Pedro

12

Spiacente di portare un vecchio filo torna alla vita, ma volevo solo condividere questa soluzione/trucco:

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

Il tuo feedback è apprezzato :)

+0

Heh - cute :) :) –

+5

'return Enumerable.Range (0, size) .Select (el => GetRandom.String (10));' funziona anche – Sherlock

Problemi correlati