📄 generics.collectionsex.pas
字号:
unit Generics.CollectionsEx;
interface
uses
Generics.Collections;
type
TPredicate<T> = reference to function(const Value: T): Boolean;
TListEx = class
public
class procedure FindAll<T>(Source: TEnumerator<T>; Dest: TList<T>;
const Predicate: TPredicate<T>); overload; static;
class procedure FindAll<T>(Source: TEnumerable<T>; Dest: TList<T>;
const Predicate: TPredicate<T>); overload; static;
end;
implementation
class procedure TListEx.FindAll<T>(Source: TEnumerator<T>; Dest: TList<T>;
const Predicate: TPredicate<T>);
begin
while Source.MoveNext do
begin
if Predicate(Source.Current) then
Dest.Add(Source.Current);
end;
end;
class procedure TListEx.FindAll<T>(Source: TEnumerable<T>; Dest: TList<T>;
const Predicate: TPredicate<T>);
begin
FindAll<T>(Source.GetEnumerator, Dest, Predicate);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -