RAD Studio VCL Reference
|
Insert collection into list.
procedure InsertRange(Index: Integer; const Values: array of T); overload; procedure InsertRange(Index: Integer; const Collection: IEnumerable<T>); overload; procedure InsertRange(Index: Integer; const Collection: TEnumerable<T>); overload;
__fastcall InsertRange(int Index, const array of T Values); __fastcall InsertRange(int Index, const IEnumerable<T> Collection); __fastcall InsertRange(int Index, const TEnumerable<T> Collection);
InsertRange inserts an array of values Values into the list at the index Index. If the list Count plus the extra entries is greater than Capacity, Capacity is increased.
If Index is not valid for the list, an EArgumentOutOfRangeException exception is raised.
This is an O(n + m) operation, where n is the number of items in the list and m is the number of entries in Values.
An OnNotify event occurs indicating items were inserted in the list.
Delphi Examples:
{ This example demonstrates the usage of the generic TList class. } procedure TForm3.Button1Click(Sender: TObject); var List: TList<Integer>; FoundIndex: Integer; begin { Create a new List } List := TList<Integer>.Create(); { Register a notification call-back } List.OnNotify := ListChanged; { Add a few values to the list } List.AddRange([5, 1, 8, 2, 9, 14, 4, 5, 1]); MessageDlg('Index of first 1 is ' + IntToStr(List.IndexOf(1)), mtInformation, [mbOK], 0); MessageDlg('Index of last 1 is ' + IntToStr(List.LastIndexOf(1)), mtInformation, [mbOK], 0); MessageDlg('List contains elemnt 100? ' + BoolToStr(List.Contains(100)), mtInformation, [mbOK], 0); { Add another element to the list } List.Add(100); MessageDlg('There are ' + IntToStr(List.Count) + ' elements in the list.', mtInformation, [mbOK], 0); { Remove the first occurence of 1 } List.Remove(1); { Delete a few elements form position 0 } List.Delete(0); List.DeleteRange(0, 2); { Extract the remeining 1 from the list } List.Extract(1); { Set the capacity to the actual length } List.TrimExcess(); MessageDlg('There capacity of the list is ' + IntToStr(List.Capacity), mtInformation, [mbOK], 0); { Clear the list } List.Clear(); { Insert some elements } List.Insert(0, 2); List.Insert(1, 1); List.InsertRange(0, [6, 3, 8, 10, 11]); { Sort the list } List.Sort(); { Binary search for the required element } if List.BinarySearch(6, FoundIndex) then MessageDlg('Found element 6 at index ' + IntToStr(FoundIndex), mtInformation, [mbOK], 0); { Reverse the list } List.Reverse(); MessageDlg('The element on position 0 is ' + IntToStr(List.Items[0]), mtInformation, [mbOK], 0); end; procedure TForm3.ListChanged(Sender: TObject; const Item: Integer; Action: TCollectionNotification); begin { This method is called by the List everytime a change occurs } if Action = cnAdded then MessageDlg('Element added: ' + IntToStr(Item), mtInformation, [mbOK], 0) else if Action = cnRemoved then MessageDlg('Element removed: ' + IntToStr(Item), mtInformation, [mbOK], 0) else if Action = cnExtracted then MessageDlg('Element extracted: ' + IntToStr(Item), mtInformation, [mbOK], 0) end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|