C#对ListBox去重

首先是对于一个listBox里面有的项,假设listBox有重复数据可以用这个函数去除重复数据

        ///<summary>
        // listBox自身已有项去重
        /// </summary>
        /// <param name="listBox">需要去重ListBox</param>
        /// 
        public void Self_Move_Repeat(ListBox listBox)
        {
            for(int i = 0; i < listBox.Items.Count; i++)
            {
                for(int j=i+1;j< listBox.Items.Count; j++)
                {
                    if (listBox.Items[i].Equals(listBox.Items[j]))
                        listBox.Items.Remove(listBox.Items[j]);
                }
            }
        }

第二中是针对要插入的数据和listBox里面的数据进行比对,如果有的话就不插入,这里要注意,需要判别listBox里面的内容是不是为空,为空的话就eles一下,直接进行插入。否则会报错,因为当listBox里面没有项的时候listBox.Items[0]的逻辑是不存在,而非空。

        public void Add_Move_Repeat(string str,ListBox listBox)
        {
            //MessageBox.Show(listBox.Items[i].ToString());
            if (listBox.Items.Count > 0)
            {
                int i = 0;
                for (; i < listBox.Items.Count; i++)
                {
                    if (listBox.Items[i].ToString().Equals(str))
                    {
                        break;
                    }
                }
                if(i==listBox.Items.Count)
                    listBox.Items.Add(str);
            }
            else
            {
                listBox.Items.Add(str);
            }
        }

这里把把两种去重方案放在一个ListBox_Oprate类里面,用的时候new一个出来传出参数就可以使用

ListBox_Oprate listBox_Oprate=new ListBox_Oprate;
listBox_Oprate. Self_Move_Repeat(listBox); //listBox是要去重的listBox的名称
listBox_Oprate. Self_Move_RepeatAdd_Move_Repeat(string str, listBox);//str是要添加的字符串,listBox是要加到的Box名称

附上整个类包,记得应用using System.Windows.Controls;不然不能加入ListBox形参

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;

namespace 管理系统
{
    class ListBox_Oprate
    {
        /// <summary>
        /// listBox自身已有项去重
        /// </summary>
        /// <param name="listBox">需要去重ListBox</param>
        /// 
        public void Self_Move_Repeat(ListBox listBox)
        {
            for(int i = 0; i < listBox.Items.Count; i++)
            {
                for(int j=i+1;j< listBox.Items.Count; j++)
                {
                    if (listBox.Items[i].Equals(listBox.Items[j]))
                        listBox.Items.Remove(listBox.Items[j]);
                }
            }
        }
        /// <summary>
        /// listBox已有则不加入listBox
        /// </summary>
        /// <param name="str"></param>
        /// <param name="listBox"></param>
        public void Add_Move_Repeat(string str,ListBox listBox)
        {
            //MessageBox.Show(listBox.Items[i].ToString());
            if (listBox.Items.Count > 0)
            {
                int i = 0;
                for (; i < listBox.Items.Count; i++)
                {
                    if (listBox.Items[i].ToString().Equals(str))
                    {
                        break;
                    }
                }
                if(i==listBox.Items.Count)
                    listBox.Items.Add(str);
            }
            else
            {
                listBox.Items.Add(str);
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_39841821/article/details/78718616