比如我定义一个集合:
Type
TWordSet = Set of Word;var
  WS:TWodSet;
begin
  WS:=[100,300,600,760,800,60000];
end;我如何知道WS中有几个元素,且这些元素都是些什么?不用下面这种方法。效率高点的。
for I:=0 to 65535 do
  if I in WS then
  begin
  end;

解决方案 »

  1.   

    可以这样
    set的成员数
    icount:=sizeof(ws) div 2;
    warray:array of word;
    setlength(warray,icount);
    copymemory(@warray,@ws,sizeof(ws));
    warray[0]:=....
    没有环境,楼主看看行不?
      

  2.   

    谢谢了,其实上面的设想是错误的。一个集合最多只能有256个元素。
    所以 TWordSet = Set of Word;是不正确的。
    不过你的方法我试试。
      

  3.   

    试过了,不行,我用Array of Word搞定了,可以接受类似集合的参数。