public String[] names() { String[] allnames = null; lock (this) { int n = byName.Count; allnames = new String[n]; int i = 0; foreach (string key in byName.Keys) { allnames[i++] = key; } } return allnames; }