在Delphi中使用枚举的所有项目的常量

Alo*_*mer 1 delphi

是否可以在Delphi中拥有枚举类型的所有项目的常量集合?

type
    TItems = (
      iOne,
      iTwo,
      iThree
    );

    TItemsSet = set of TItems;

const
    SOMEITEMS: TItemsSet = [iTwo, iThree];


    ALLITEMS: TItemsSet = ?????
Run Code Online (Sandbox Code Playgroud)

我希望ALLITEMS能够永远拥有TItems的所有成员.我宁愿让这个不变.

编辑: 如果我的枚举看起来如此:

TItems = (
  iOne = 1,
  iTwo = 2,
  iThree = 5
);
Run Code Online (Sandbox Code Playgroud)

小智 5

(来自评论)

[Low(T)..High(T)]适用于任何T小到足以用作集合的类型,包括可以包含在集合中的所有项目.

正如评论中所指出的,这对于问题中的枚举来说已经足够了,但一般来说,可能包括未被定义为枚举一部分的常量.

  • @AloisHeimer 现在已测试:`set of TItems` 将为 `iOne`、`iTwo`、`TItems(3)`、`TItems(4)` 和 `iThree` 留出空间。`[Low(TItems)..High(TItems)]` 将包括所有五个,而不仅仅是那些有名字的。 (2认同)