如何检查一个子集是否包含在一个集合中?
How to check if a subset is included into a set?
我有两个集合类型变量,我需要检查第一个是否是第二个的子集。
type
TMyValue = (mvOne, mvTwo, mvThree);
TMyValues = set of TMyValue;
...
var
V1 : TMyValues;
V2 : TMyValues;
begin
V1 := [mvOne, mvTwo];
V2 := [mvOne, mvTwo, mvThree];
if(V1 in V2)
then ShowMessage('V1 is a subset of V2')
else ShowMessage('V2 is not a subset of V2');
end;
示例代码在编译时出现以下错误:
[DCC Error] Unit1.pas(36): E2010 Incompatible types: 'TMyValues' and
'TMyValue'
是否有运算符或 "embedded function" 来检查 V1 的值是否都在 V2 中?
集合运算符 <=
允许检查 V1 是否是 V2 (reference to online help)
的子集
if(V1 <= V2)...
注意空集是任何集合的子集。
运算符in
应该检查集合中单个元素的出现,所以这里的用法是错误的。
我有两个集合类型变量,我需要检查第一个是否是第二个的子集。
type
TMyValue = (mvOne, mvTwo, mvThree);
TMyValues = set of TMyValue;
...
var
V1 : TMyValues;
V2 : TMyValues;
begin
V1 := [mvOne, mvTwo];
V2 := [mvOne, mvTwo, mvThree];
if(V1 in V2)
then ShowMessage('V1 is a subset of V2')
else ShowMessage('V2 is not a subset of V2');
end;
示例代码在编译时出现以下错误:
[DCC Error] Unit1.pas(36): E2010 Incompatible types: 'TMyValues' and 'TMyValue'
是否有运算符或 "embedded function" 来检查 V1 的值是否都在 V2 中?
集合运算符 <=
允许检查 V1 是否是 V2 (reference to online help)
if(V1 <= V2)...
注意空集是任何集合的子集。
运算符in
应该检查集合中单个元素的出现,所以这里的用法是错误的。