使用TArray类函数

问题描述 投票:0回答:1

我需要对TArray<integer>进行排序,已将System.Generics.Collections添加到uses子句中,然后尝试了以下代码:

var
  Arr : TArray<integer>;
begin
  SetLength(Arr, 2);
  Arr[0] := 5;
  Arr[1] := 3;

  TArray.Sort(Arr);

  ShowMessage(IntToStr(Arr[0]));
end;

编译时会产生E2250错误:

[dcc32错误] Unit1.pas(39):E2250没有重载版本的可以使用这些参数调用的“排序”

delphi delphi-xe7 generic-collections
1个回答
1
投票

在写问题时,我找到了答案...(这是一个琐碎的语法问题)

TArray类中,Sort函数的定义如下:

class procedure Sort<T>(var Values: array of T); overload; static;

因此TArray类函数必须通过指定类型after函数名称来调用:

var
  Arr : TArray<integer>;
begin
  SetLength(Arr, 2);
  Arr[0] := 5;
  Arr[1] := 3;

  TArray.Sort<integer>(Arr);

  ShowMessage(IntToStr(Arr[0]));
end;
© www.soinside.com 2019 - 2024. All rights reserved.