internal void Group()

in csharp/NativeUtils/ResourceLoaderUtils.cs [155:192]


			internal void Group()
			{
				bool again;
				do
				{
					again = false;
					foreach (var o in this)
					{
						String key = o.Key;
						int prefixLength = key.IndexOf('.') + 1;
						if (prefixLength == key.Length)
						{
							var subGroup = o.Value as Map;
							if (null == subGroup)
							{
								Remove(key);
								Add(key, subGroup = new Map { _name = (String)o.Value });
								again = true;
							}

							foreach (var o2 in this.ToList())
							{
								String key2 = o2.Key;
								if (key2.StartsWith(key) && key2.Length > prefixLength)
								{
									subGroup.Add(key2.Substring(prefixLength), o2.Value);
									Remove(key2);
									again = true;
								}
							}

							subGroup.Group();
							if (again)
								break;
						}
					}
				} while (again);
			}