private void AddWildcard(string wildcard, object particle) {
if (wildcards == null) {
wildcards = new Hashtable();
}
object lookup = wildcards[wildcard];
if (lookup == null) {
wildcards.Add(wildcard, last);
particles.Add(particle);
Debug.Assert(particles.Count == last + 1);
last ++;
}
else if (particle != null) {
particles[(int)lookup] = particle;
}
}