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

How do I create a case insensitive list of string?

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

CreateList 方法让我传入一些重载:

我试过这样使用 TStringComparer.OrdinalIgnoreCase

var
  List: IList<string>;
begin
  List := TCollections.CreateList<string>(TStringComparer.OrdinalIgnoreCase);
end;

但是由于这个比较器没有实现上述任何类 / 不编译的接口;我得到:

E2250 There is no overloaded version of TCollections.CreateList<System.string> that can be called with these arguments

是否有 spring4d 框架中可用的实现之一?

仔细检查类型后 TComparison:

type
  TComparison<T> = reference to function(const Left, Right: T): Integer;

答案很简单:

var
  List: IList<string>;
begin
  List := TCollections.CreateList<string>(AnsiCompareText);
end;

你需要写括号:

var
  List: IList<string>;
begin
  List := TCollections.CreateList<string>(TStringComparer.OrdinalIgnoreCase());
end;

以后的编译器版本可以不用。