delphi 10.4 数据库图文教程(Delphi基础教程图文版之数据类型)(1)

集合类型

在pascal中,一个集合是由具有同一有序类型的一组数据元素所组成,这一有序类型称为该集合的基类型。

有的人觉得Delphi中的集合没啥用途,这些人里面包括我自己,实际上并不是,它也有很多应用场景,例如:以前在程序中总要先从数据库中取出好多元素,然后逐个判断,现在使用集合完全可以避免这种操作

定义和说明

基础语法: set of 基类型;

基类型可以是任意顺序类型, 而不能是实型或其它构造类型。同时,基类型的数据的序号不得超过255。因为子界类型和枚举类型都是有序的,所以他们可以联用,如下:

function IsContainCharacter(Character: Char): Boolean; var Chars: set of 'A' .. 'Z'; begin Result := Character in Chars; end; begin try Writeln(IsContainCharacter('B')); except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; Readln; end.

注意:因为集合的元素个数不超过256个,因此 var s:set of integer; 是错误的。

元素遍历

procedure ListCharacters(); var Chars: set of char; Str: string; begin Chars := ['A' .. 'J', 'a', 'm']; for var C in Chars do begin Str := Str C; end; Writeln(Str); end; begin ListCharacters; Readln; end.

其他操作

type TEnum = (One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten); TSetEnum = set of TEnum; //初始化 procedure TForm4.Button3Click(Sender: TObject); begin SetEnum := [one, Two]; SetEnum1 := [Three, Nine, Ten] end; //集合减少 procedure TForm4.Button5Click(Sender: TObject); begin SetEnum := SetEnum - [Two]; end; //集合增加 procedure TForm4.Button6Click(Sender: TObject); begin SetEnum := SetEnum [Three]; end; //集合减少 procedure TForm4.Button7Click(Sender: TObject); begin Exclude(SetEnum, One); end; //集合增加 procedure TForm4.Button4Click(Sender: TObject); begin Include(SetEnum, Four); Include(SetEnum, Ten); end;

虽然通过 -符号可以实现对集合元素的操作,但是比较推荐的用法还是尽量使用Include和Exclude完成

,