我正在尝试创建一个不区分大小写的字符串列表。
CreateList
方法让我传递一些重载:
TComparison<System.string>
IComparer<System.string>
我试图像这样使用TStringComparer.OrdinalIgnoreCase
:
var
List: IList<string>;
begin
List := TCollections.CreateList<string>(TStringComparer.OrdinalIgnoreCase);
end;
但是因为这个比较器没有实现任何上面没有编译的类/接口;我明白了:
E2250没有可以使用这些参数调用的
TCollections.CreateList<System.string>
的重载版本
Spring4d框架中是否有其中一个可用的实现?
答案 0 :(得分:4)
你需要写下括号:
var
List: IList<string>;
begin
List := TCollections.CreateList<string>(TStringComparer.OrdinalIgnoreCase());
end;
以后的编译器版本可以在没有。
的情况下解决它答案 1 :(得分:1)
仔细检查类型TComparison
后:
type
TComparison<T> = reference to function(const Left, Right: T): Integer;
答案结果证明是非常重要的:
var
List: IList<string>;
begin
List := TCollections.CreateList<string>(AnsiCompareText);
end;