Azmyth.Procedural.MarkovNameGenerator.MarkovNameGenerator C# (CSharp) Method

MarkovNameGenerator() public method

public MarkovNameGenerator ( IEnumerable samples, int order ) : System
samples IEnumerable
order int
return System
        public MarkovNameGenerator(IEnumerable<string> samples, int order)
        {
            m_order = order;
            m_samples = samples.ToList<string>();

            foreach (string sample in samples)
            {
                if (m_minLength > sample.Length)
                    m_minLength = sample.Length;

                if (m_maxLength < sample.Length)
                    m_maxLength = sample.Length;

                for (int index = 0; index < sample.Length - order; index++)
                {
                    string token = sample.Substring(index, order);

                    List<string> entry = null;

                    if(!m_chains.ContainsKey(token))
                    {
                        entry = new List<string>();
                        m_chains.Add(token, entry);
                    }
                    else
                    {
                        entry = m_chains[token];
                    }

                    entry.Add(sample[index + order].ToString());
                }
            }
        }
MarkovNameGenerator