Sfałszowaną biblioteka ma metodę pomocnika za zbieranie losowy element kolekcji:
public T PickRandom<T>(IEnumerable<T> items)
Metoda bierze IEnumerable
, co oznacza, można utworzyć tablicę lub List<string>
trzymać swoje predefiniowanych danych. Można go używać w połączeniu z inicjator zbiórki wygenerować listę telefonu tak:
var phones = new List<string> { "111-111-111", "222-222-222", "333-333-333" };
var Ids = 0;
var test = new Faker<Person>()
.RuleFor(p => p.Id, f => Ids++)
// generate 2 phones
.RuleFor(p => p.Phones, f => new List<string> { f.PickRandom(phones), f.PickRandom(phones) });
Jeśli chcesz wygenerować wiele więcej pozycji na liście, a ty nie chcesz inicjator rośnie duża (lub chcą zmieniać ilość programowo) można używać LINQ:
// generate 8 phones
.RuleFor(p => p.Phones, f => Enumerable.Range(1, 8).Select(x => f.PickRandom(phones)).ToList());
// generate 1 to 5 phones
.RuleFor(p => p.Phones, f => Enumerable.Range(1, f.Random.Int(1, 5)).Select(x => f.PickRandom(phones)).ToList());
Możesz dowiedzieć się więcej w readme na gitHub stronie projektu.