public int Add(object O) { int Return = -1; if (ObjectIsCompliant(O)) { int Index = IndexOf(O); int NewIndex = Index>=0 ? Index : -Index-1; if (NewIndex>=Count) FList.Add(O); else FList.Insert(NewIndex, O); Return = NewIndex; } return Return; }