发布时间:2026-06-18阅读(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完成
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图