如何判断集合数据中是否包含多个指定的属性
怎么判断集合数据中是否包含多个指定的属性?
比如
TState = (a, b, c, d);
TStatus = set of TState;
var
s: TStatus;
怎么判断s里是否包含了a和c
用in的话,只能判断一个吧,难道要一层层的if判断?如果属性多了,写起来比较麻烦啊
------解决方案--------------------
用交集,結果是a和c,就表示存在
比如
TState = (a, b, c, d);
TStatus = set of TState;
var
s: TStatus;
怎么判断s里是否包含了a和c
用in的话,只能判断一个吧,难道要一层层的if判断?如果属性多了,写起来比较麻烦啊
------解决方案--------------------
用交集,結果是a和c,就表示存在
- Delphi(Pascal) code
const CompareSet=[a]+[c];
var
s: TStatus;
begin
s:=[a]+[c]+[d];
if s*CompareSet=CompareSet then
showmessage('s中包含CompareSet');
end;