/// <summary> /// Repopulates the <see cref="MarkovData"/> instance with new data using values from the /// <see cref="Data.Names"/> namespace or your own input, with the option of setting <paramref name="tokenLength"/> /// and <paramref name="isPreformatted"/>. Clears the <see cref="NameList"/> on switching. /// </summary> /// <param name="nameSource"> /// A non-empty list of strings; if empty or null then the <see cref="markovData"/> /// is not updated.</param> /// <param name="tokenLength">The length of the ngram used to generate new names. When in doubt, use 3.</param> /// <param name="isPreformatted"> /// Determines whether the MarkovData constructor will sanitize the input before populating all its data. /// </param> public void SwitchSource(List <string> nameSource, int tokenLength, bool isPreformatted) { if (nameSource is null || !nameSource.Any()) { return; } markovData = new MarkovData(nameSource, tokenLength, isPreformatted); NameList.Clear(); }
/// <summary> /// Creates a new instance of the name generator with the specified "source" and token length. /// </summary> /// <param name="input"> /// A non-empty list of strings; if empty or null then the <see cref="markovData"/> /// is not updated.</param> /// <param name="tokenLength">The length of the ngram used to generate new names. When in doubt, use 3.</param> public NameGenerator(IEnumerable <string> input, int tokenLength) { markovData = new MarkovData(input, tokenLength); NameList = new List <string>(); }
/// <summary> /// Default constructor; defaults to use <see cref="Aztec.Female"/> names with a token length of 3. /// </summary> public NameGenerator() { markovData = new MarkovData(Aztec.Female, tokenLength: 3, true); NameList = new List <string>(); }