AX 2009 Set类

Set类

Set可以容纳相同类型的任意数据的值,其特点就是所有保存于Set的值都是排序并且唯一的,当插入重复的值时,

Set会自动忽略。比如字符串类型,不区分大小写。

Set还可以用作集合的并集(Union)、交集(Intersection)和差集(Defference)运算。

Union:A集合元素与B集合元素,合并。

Intersection:A集合与B集合都存在的元素,交集。

Defference:A集合与B集合不相同的元素,以后者为主,取前者。

 

static void SetJob(Args _args)
{
    Set             m_SetStr = new Set(Types::String);
    Set             m_SetA = new Set(Types::Integer);
    Set             m_SetB = new Set(Types::Integer);
    SetEnumerator   m_SetEtor;
    ;
    
    m_SetStr.add("Andy");
    m_SetStr.add("Judy");
    m_SetStr.add("Luck");
    m_SetStr.add("ANDY");
    
    info(strfmt("%1",m_SetStr.in("Andy"))); //true
    info(m_SetStr.toString());
    info(strfmt("count:%1",m_SetStr.elements()));//3
    m_SetEtor = m_SetStr.getEnumerator();
    while(m_SetEtor.moveNext())
    {
        info(m_SetEtor.current());
    }
    m_SetStr.remove("Luck");
    
    info("============");
    
    m_SetA.add(1);
    m_SetA.add(2);
    m_SetA.add(3);
    
    m_SetB.add(3);
    m_SetB.add(4);
    m_SetB.add(5);
    
    info(set::union(m_SetA,m_SetB).toString()); //1,2,3,4,5
    info(set::intersection(m_SetA,m_SetB).toString()); //3
    info(set::difference(m_SetA,m_SetB).toString()); //1,2
}

 

 

posted @ 2011-10-09 15:23  Kurodo  阅读(299)  评论(0编辑  收藏  举报