2010-10-10 8 views
9

dość proste pytanie: czy mogę użyć NBuilder, aby utworzyć kolekcję x numer losowych ciągów znaków?Czy można użyć programu NBuilder do tworzenia kolekcji losowych ciągów znaków?

starałem ...

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

ale to run-time erroring, coś musiałem zadzwonić do jakiegoś konkretnego konstruktora czy coś.

Ktoś ma jakieś pomysły?

Odpowiedz

7

NBuilder tworzy obiekty za pomocą domyślnego konstruktora (bez parametrów). Wyjątek, który otrzymujesz, polega na tym, że klasa String nie ma domyślnego konstruktora.

Aby utworzyć listę losowych ciągów znaków, można użyć metody fraz w pętli. Może nie tak czysty, jak pojedynczy łańcuch NBuilder, ale dostaje zadanie:

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

, więc NBUilder nie może tworzyć losowych ciągów znaków? –

+0

Losowy ciąg znaków - tak. Lista losowych ciągów przy użyciu pojedynczego łańcucha metod NBuilder - nie tego jestem świadomy. Zaktualizowałem swoją odpowiedź, aby uwzględnić sposób generowania listy. – Pedro

12

przepraszam przynosząc stary wątek z powrotem do życia, ale ja po prostu chciałem podzielić się z tego rozwiązania/Hack:

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

Twoja opinia jest doceniana :)

+0

Heh - uroczy :) :) –

+5

'return Enumerable.Range (0, rozmiar). Wybierz (el => GetRandom.String (10));' działa też – Sherlock

Powiązane problemy