首先是对于一个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);
}
}
}
}