C#對ListBox去重
阿新 • • 發佈:2018-11-05
首先是對於一個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);
}
}
}
}