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;
}