MBGen.WordList.Merge C# (CSharp) Method

Merge() public method

public Merge ( WordList list ) : bool
list WordList
return bool
        public bool Merge(WordList list)
        {
            if (list.Subtypes.Length != this.Subtypes.Length)
            {
                return false;
            }

            int o = this.Words.Length;
            int s = list.Words.Length + this.Words.Length;

            if (o == s)
            {
                return true;
            }

            Array.Resize<string[]>(ref this.Words, s);
            Array.Resize<int>(ref this.Weights, s);
            Array.Resize<int>(ref this.DistWeights, s);

            Array.Copy(list.Words, 0, this.Words, o, list.Words.Length);
            Array.Copy(list.Weights, 0, this.Weights, o, list.Weights.Length);
            Array.Copy(list.DistWeights, 0, this.DistWeights, o, list.DistWeights.Length);

            foreach(KeyValuePair<string, List<int>> pair in list.Classes)
            {
                if (this.Classes.ContainsKey(pair.Key))
                {
                    this.Classes[pair.Key].AddRange(pair.Value);
                }
                else
                {
                    this.Classes.Add(pair.Key, pair.Value);
                }
            }

            return true;
        }