unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses Generics.Collections; //从 TList<T> 建立 TQueue<T> procedure TForm1.Button1Click(Sender: TObject); var Queue: TQueue<string>; List: TList<string>; s,str: string; begin List := TList<string>.Create(); List.AddRange(['AA', 'BB', 'CC']); Queue := TQueue<string>.Create(List); str := ''; for s in Queue do str := str + s + ' '; ShowMessage(str); {AA BB CC } ShowMessage(IntToStr(Queue.Count)); {3} Queue.Clear; ShowMessage(IntToStr(Queue.Count)); {0} //Queue.TrimExcess; { TrimExcess 方法在 Queue 好像没有存在的意义} List.Free; Queue.Free; end; end.