如何创建不区分大小写的字符串列表?
How do I create a case insensitive list of string?
我正在尝试创建一个不区分大小写的字符串列表。
CreateList
方法让我传入一些重载:
TComparison<System.string>
IComparer<System.string>
我试过这样使用 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;
以后的编译器版本可以不用。
我正在尝试创建一个不区分大小写的字符串列表。
CreateList
方法让我传入一些重载:
TComparison<System.string>
IComparer<System.string>
我试过这样使用 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;
以后的编译器版本可以不用。