如何创建不区分大小写的字符串列表?

时间:2015-05-18 16:55:41

标签: delphi collections delphi-xe2 spring4d

我正在尝试创建一个不区分大小写的字符串列表。

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框架中是否有其中一个可用的实现?

2 个答案:

答案 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;