我有一个ListBox,每次客户端向服务器发送消息时都会添加文本。
我也想搜索ListBox以查找重复项并输出消息。
例如,如果ListBox如下:
Cat
Dog
Rat
什么都不应该发生。
但是如果ListBox如下:
Cat
Cat
Dog
我想要它清除或输出信息。
任何想法? 感谢
答案 0 :(得分:0)
您是否可以切换到HashSet
?
所以你把所有内容放在HashSet
中,然后将所有元素放入ListBox
。
HashSet<String> hashSet = new HashSet<String>();
HashSet始终包含唯一元素。
如果我这样做:
hashSet.Add("Hello");
hashSet.Add("Hello");
hashSet
只包含一次“Hello”。
答案 1 :(得分:0)
你可以这样做吗?
var duplicates = myListBox.Items.Cast<string>().Where(i => i.Count() > 1);
if (duplicates.Any())
// Duplicates
Console.WriteLine("Alert !");
else
myListBox.Items.Add(myString);
答案 2 :(得分:0)
这是一个简单的实现,可以帮助您入门:
for (int i = 0; i < listBox1.Items.Count; i++)
{
for (int j = i + 1; j < listBox1.Items.Count; j++)
{
if (listBox1.Items[i].ToString() == listBox1.Items[j].ToString())
{
Console.WriteLine("Duplicate {0}:{1}", listBox1.Items[i].ToString(), listBox1.Items[j].ToString());
}
}
}
从您的示例列表框项目中,上述代码的输出将产生:
"Duplicate Cat:Cat"