anchor.diff:      FList : TObjectList;
   
       FMustRebuildIndex : boolean;
  +    FMainIndex : TmStringDictionary;
  +    FIndexes : TmStringDictionary;
  +    FIndexedFieldNames : TStringList;
  +    procedure ClearIndexes;
     protected
  -    FMap : TmStringDictionary;
  +    procedure AddIndex (const aFieldName : String);
       procedure InternalAdd(aDatum : TObject);
       procedure InternalRemove(aDatum : TObject);
       procedure InternalDelete(const aIndex: integer);
  
positive.code:   Result := Self.InternalFindByString(aStringKey) as IVDDatum;
  end;
  
  end.
  
negative.code: begin
    if FMustRebuildIndex then
      RebuildIndex;
    Result := FMainIndex.Find(aStringKey);
    FMustRebuildIndex:=false;
  end;
  
  