public static void LinkAlternatesInsideList(ArrayList list)
{
Hashtable baseForms = new Hashtable(list.Count);
foreach(OptionDetails option in list)
{
if (option.LongForm != null && option.LongForm.Trim().Length > 0)
{
string[] parts = option.LongForm.Split(':');
if (parts.Length < 2)
{
baseForms.Add(option.LongForm, option);
}
else
{
OptionDetails baseForm = (OptionDetails) baseForms[parts[0]];
if (baseForm != null)
{
// simple linked list
option.NextAlternate = baseForm.NextAlternate;
baseForm.NextAlternate = option;
}
}
}
}
}