public static void RecurseFindCategories( CategoryEntry ce, ArrayList list ) { list.Add( ce ); for ( int i = 0; i < ce.SubCategories.Length; ++i ) RecurseFindCategories( ce.SubCategories[i], list ); }