有关集合元素的问题

[复制链接]
查看11 | 回复5 | 2021-1-27 07:04:29 | 显示全部楼层 |阅读模式
大家好,我问一个有关集合的问题:
我很少用集合,多用枚举。我现在需要用集合,但有些问题不清楚。
1.如何知道集合中有多少个元素。
2.如何能列出集合中的所有元素值。
比如集合:
varse:setofChar;

typeca=(One,Two,Three);
varnum:setofca;
那如何列出集合se或num中的所有值呢?
需要写一个函数。
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层

var
cs:setofChar;
c:Char;
num:Integer;
begin
num:=0;
cs:=['a'..'z','A'..'Z','0'..'9'];
forc:=Low(Char)toHigh(Char)do
ifcincsthen
begin
Inc(num);
ShowMessage(Format('第%d个元素=%s',[num,c]));
end;
ShowMessage(Format('共%d个元素',[num]));
end;

回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层
“如何能列出集合中的所有元素值。”
这问题有点怪里怪气的,要搞清楚这个set就是数学中的集合


回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层
新版本(2005开始?)有个for[c]in[char]do的遍历用法
回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层
谢谢。关键是我的集合是什么样子完全不知道。要写一个通用的方法才成。
回复

使用道具 举报

千问 | 2021-1-27 07:04:29 | 显示全部楼层
用猥琐的办法:读RTTI!。。不过这很难办到。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行