首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于泛型数组排序解决思路

2012-02-25 
关于泛型数组排序usesGenerics.Collectionsvara : array of stringbegin//do somethingTarray.sortstri

关于泛型数组排序
uses
  Generics.Collections;

var
  a : array of string;
begin
//do something

Tarray.sort<string>(a);//这样可以正常调用
end

var
  a : array of char;
begin
//do something

Tarray.sort<char>(a);//这样叫报错
end
错误信息:[DCC Error] Unit1.pas(41): E2010 Incompatible types: 'array of Char' and 'Dynamic array'

请教高手指点

[解决办法]
Tarray 不支持 array of Char 呗. 参考一下 TArray的帮助吧.
[解决办法]

Delphi(Pascal) code
var  arrC : TArray<PChar>;begin  SetLength(arrC, 4);  arrC[0] := 'b';  arrC[1] := 'd';  arrC[2] := 'c';  arrC[3] := 'a';  TArray.Sort<PChar>(arrC, TComparer<PChar>.Construct(    function (const a, b: PChar): Integer    begin      Result := Ord(a^) - Ord(b^);    end  ));  ShowMessage(arrc[0] + ', ' + arrc[1] + ', ' + arrc[2] + ', ' + arrc[3]);
[解决办法]
uses Generics.Collections, Generics.Defaults;
[解决办法]
没用过新版本的Delphi。不过在老版本中,如果碰到这种Dynamic Array与Array of XXX不匹配的情况时,常常是定义一个TXXX=array of XXX,然后在变量定义时采用var xxx: TXXX这样的方式的。

热点排行