Code C# – Thực hiện các phép toán trên tập hợp

Lớp Set  bên dưới sẽ cung cấp cho chúng ta các hàm thực hiện các phép toán trên tập hợp như: Giao, hợp, hiệu:

class Set
    {
        private string m_Set = "";

        #region Contructors
        public Set(string str_set)
        {
            this.m_Set = str_set;
        }
        #endregion
        #region Properties
        public string SET
        {
            get { return m_Set; }
            set { m_Set = value; }
        }

        public int SIZE
        {
            get { return this.m_Set.Split(new char[1] { ',' }).Length; }
        }
        #endregion
        #region Method
        /// <summary>
        /// Giao 2 tập hợp
        /// </summary>
        /// <param name="Set2"></param>
        /// <returns>Kết quả của phép giao 2 tập hợp</returns>
        public string Intersection(Set Set2)
        {
            string[] arr_Set1 = this.m_Set.Split(new char[1] { ',' });
            string[] arr_Set2 = Set2.SET.Split(new char[1] { ',' });
            string Resualt = "";
            foreach (string item1 in arr_Set1)
                foreach (string item2 in arr_Set2)
                    if (item1 == item2)
                        Resualt += item1 + ",";
            if (Resualt.Length > 0)
                Resualt = Resualt.Substring(0, Resualt.Length - 1);
            return Resualt;
        }

        /// <summary>
        /// Hợp 2 tập hợp
        /// </summary>
        /// <param name="Set2"></param>
        /// <returns>Kết quả của phép hợp 2 tập hợp</returns>
        public string Union(Set Set2)
        {
            string[] arr_Set1 = this.m_Set.Split(new char[1] { ',' });
            string[] arr_Set2 = Set2.SET.Split(new char[1] { ',' });
            string Resualt = "";
            if (this.IsNull())
                Resualt = Set2.SET;
            else if (Set2.IsNull())
                Resualt = this.SET;
            else
            {
                Resualt = this.SET + ",";
                foreach (string item2 in arr_Set2)
                {
                    bool exits = false;
                    foreach (string item1 in arr_Set1)
                    {
                        if (item1 == item2)
                        {
                            exits = true;
                            break;
                        }
                    }
                    if (exits == false)
                        Resualt += item2 + ",";
                }
                if (Resualt.Length > 0)
                    Resualt = Resualt.Substring(0, Resualt.Length - 1);
            }

            return Resualt;
        }

        /// <summary>
        /// Hiệu 2 tập hợp
        /// </summary>
        /// <param name="Set2"></param>
        /// <returns>Kết quả hiệu 2 tập hợp</returns>
        public string Minus(Set Set2)
        {
            string[] arr_Set1 = this.m_Set.Split(new char[1] { ',' });
            string[] arr_Set2 = Set2.SET.Split(new char[1] { ',' });
            string Resualt = "";
            foreach (string item1 in arr_Set1)
            {
                bool exits = false;
                foreach (string item2 in arr_Set2)
                {
                    if (item1 == item2)
                    {
                        exits = true;
                        break;
                    }
                }
                if (exits == false)
                    Resualt += item1 + ",";
            }
            if (Resualt.Length > 0)
                Resualt = Resualt.Substring(0, Resualt.Length - 1);
            return Resualt;
        }

        /// <summary>
        /// Kiểm tra tập hợp có là tập rỗng hay không?
        /// </summary>
        /// <returns></returns>
        public bool IsNull()
        {
            bool resualt = true;
            if (this.m_Set.Length > 0)
                resualt = false;
            return resualt;
        }
        #endregion
    }

 

Nosomovo

Chia sẻ lên
WEB5k - Thiết kế website giá rẻ chuẩn SEO