Delphi XE中泛型数组的使用范例,下面的范例简单的使用了泛型字符串数组,如用 TArray 代替 array of Word, 还可以使用 TArray 类提供的算法(就是少了点).

uses Generics.Collections, Generics.Defaults;

{测试 TArray 的 Sort 方法}
procedure TForm1.Button1Click(Sender: TObject);
var
arr: TArray<string>; //同 array of string
s: string;
begin
SetLength(arr, 5);
arr[0] := 'aaa';
arr[1] := 'AAA';
arr[2] := '111';
arr[3] := '333';
arr[4] := '222'; TArray.Sort<string>(arr);
Memo1.Clear;
for s in arr do Memo1.Lines.Add(s); //111 222 333 AAA aaa
end; {测试 TArray 的 BinarySearch 方法}
procedure TForm1.Button2Click(Sender: TObject);
var
arr: TArray<Integer>; //同 array of Integer
i,n: Integer;
begin
SetLength(arr, 5);
for i := 0 to Length(arr) - 1 do arr[i] := Integer(Sqr(i));
Memo1.Clear;
for i := Low(arr) to High(arr) do Memo1.Lines.Add(IntToStr(arr[i])); if TArray.BinarySearch<Integer>(arr, 4, n) then ShowMessage(IntToStr(n)); //2, 也就是第三个 if TArray.BinarySearch<Integer>(arr, 5, n) then ShowMessage(IntToStr(n)); //找不到时, 不能根据 n 的值判断
end; {自定义排序器}
procedure TForm1.Button3Click(Sender: TObject);
var
arr: TArray<Integer>;
num: Integer;
begin
SetLength(arr, 5);
arr[0] := 2;
arr[1] := 4;
arr[2] := 3;
arr[3] := 1;
arr[4] := 5; TArray.Sort<Integer>(arr, TComparer<Integer>.Construct(
function (const a,b: Integer): Integer
begin
Result := b - a;
end
));
Memo1.Clear;
for num in arr do Memo1.Lines.Add(IntToStr(num)); //5 4 3 2 1
end;
//该代码片段来自于: http://www.sharejs.com/codes/delphi/9000

[转]:Delphi XE中泛型数组的使用范例的更多相关文章

  1. Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决(对三层的例子配置有帮助)

    Delphi IDE中包含一个Data Explorer的组件,如下图所示: 该组件基于dbExpress(包含TSQLConnection.TSQLDataSet.TSQLQuery.TSQLSto ...

  2. Java中泛型数组创建总结

    在java中,可以声明一个泛型数组,不能通过直接通过T[] tarr=new T[10]的方式来创建数组,最简单的方式便是通过Array.newInstance(Classtype,int size) ...

  3. Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决

    Delphi IDE中包含一个Data Explorer的组件,如下图所示: 该组件基于dbExpress(包含TSQLConnection.TSQLDataSet.TSQLQuery.TSQLSto ...

  4. Delphi Xe 中如何把日期格式统一处理,玩转 TDatetime

    日期格式的处理总是会很复杂,因为不同的环境日 期格式也不一样.为了程序统一处理,  最好把格式给统一了: 可以在程序的初始化段: FormatSettings.ShortDateFormat := ' ...

  5. Java中泛型数组的使用

    package com.srie.testjava; import java.util.ArrayList; import java.util.List; public class TestClass ...

  6. Delphi XE中String、ANSIString、TBytes之间的转换

    一.string转为ansistring1.直接赋值 (有警告)2.ansistring()类型强制转换.(无警告) 二.ansistring 转为string 1.直接赋值 (有警告)2.strin ...

  7. delphi xe 正则表达式

    Delphi XE 中自带了正则表达式的处理类TRegEx,包含在单元 RegularExpressions,使用时要uses 一下.      TRegEx 是一个结构 ,使用时不用释放.他内部还是 ...

  8. Delphi 2010 中的泛型

    Delphi 2010 中的泛型 2010已发布很长时间了,口碑还不错,准备用它开发下一项目,但对泛型等新东西的认识还不够,就搜了一下,发现下面这篇文章,还不错,大家一起补补课吧! C++中的模板.C ...

  9. ActionScript3.0(AS3)中的泛型数组Vector

    Adobe官方并没有"泛型数组"的叫法,这是我自己对Vector的叫法(有点标题党),不过Vector在使用上确实跟c#中的泛型数组有些相似之处. 原作者:菩提树下的杨过出处:ht ...

随机推荐

  1. Xamarin Essentials教程构建共享请求

    Xamarin Essentials教程构建共享请求 共享请求类ShareTextRequest可以用于构建复杂形式的数据,用于向其他应用传输.例如,它可以指定共享内容的主题Subject,用于给邮件 ...

  2. 64. 合并排序数组.md

    描述 合并两个排序的整数数组A和B变成一个新的数组. 你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素. 您在真实的面试中是否遇到过这个题? 样例 给出 A = [1, 2, ...

  3. 机器学习系列-tensorflow-01-急切执行API

    tensorflow急切执行概述 Eager execution is an imperative, define-by-run interface where operations are exec ...

  4. 1490 ACM 数学

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1490 题意: 给出n*n 的矩阵,选出不同行不同列的n个元素,并求和: 如果所有选法所产生的和相等,则输出 ...

  5. [蓝点zigBee] CC2530 实用教程总览

    Zstack 单个模块实验(无数据通信) 1Zstack精简,增加串口数据 Zstack 里面工程较多,整体代码量很大,若入门只需要先之关注其中的一个工程,在这个工程里添添补补逐步学习. 这一节主要是 ...

  6. [模板][P4719]动态dp

    Description: 给定一棵n个点的树,点带点权. 有m次操作,每次操作给定x,y,表示修改点x的权值为y. 你需要在每次操作之后求出这棵树的最大权独立集的权值大小. Hint: \(n,m&l ...

  7. Ubuntu1404安装eclipse(目的是为了运行python,当然java更可以)

    原创文章,不得转载 我是彩印网(www.caiyin.com) 的技术开发人员,在这里首先请允许我做下业务的介绍 彩印网是由北京出彩电子商务有限公司运营的专业印刷电商,集线上购物.支付.设计.制作.配 ...

  8. idea其他人把jar更新之后更新不到

    昨天下午开始就发现这个问题,其他同事把jar更新了之后,我一直获取不到更新之后的内容.尝试了很多方法,删除具体的更新不到的jar,一直不停的mvn clean install -U -Dmaven.t ...

  9. oracle--Tracing PL/SQL subprogram calls with parameters values--Mahmoud Hatem,

    https://mahmoudhatem.wordpress.com/2017/09/15/geeky-plsql-tracerprofiler-first-step/ https://mahmoud ...

  10. C#多线程技术提高RabbitMQ消费吞吐率

    一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第二部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...