uint GetCustomModifierListInternId(IEnumerator<ICustomModifier> customModifiers) {
Contract.Requires(customModifiers != null);
if (!customModifiers.MoveNext()) return 0;
var current = customModifiers.Current;
Contract.Assume(current != null);
uint currentCustomModifierInternedId = this.GetCustomModifierInternId(current);
uint tailInternedId = this.GetCustomModifierListInternId(customModifiers);
uint value = this.CustomModifierListHashTable.Find(currentCustomModifierInternedId, tailInternedId);
if (value == 0) {
value = this.CurrentCustomModifierListInternValue++;
this.CustomModifierListHashTable.Add(currentCustomModifierInternedId, tailInternedId, value);
}
return value;
}