private Category FindCategory(Category startCategory, string[] parts)
{
if (parts.Length == 0)
return startCategory;
Category ic = null;
foreach (Category c in startCategory.Categories)
if (c.ShortName == parts[0])
{
ic = c;
break;
}
if (ic == null)
{
string prefix = startCategory.Name != null ? startCategory.Name + '.' : "";
ic = new Category(prefix + parts[0], startCategory);
startCategory.Categories.Add(ic);
}
string[] sa = new string[parts.Length - 1];
Array.Copy(parts, 1, sa, 0, sa.Length);
return FindCategory(ic, sa);
}