1、C#如何判断列表框有无重复的项目 | 唐寒枫C#如何判断列表框有无重复的项目2013 年 11 月 27 日 星期三 大家刚开始学习 listbox 控件的时候可能会遇到一个问题,就是已经学会对列表框进行增删改了,但是对于“增” 这一项遇到了一点麻烦,什么麻烦呢?当我们不做过多的操作进行列表框内容添加时往往会插入一些重复值,但是我们又不想插入重复值,我们想列表框里面的内容是独一无二的,但是又不知道怎么去做,现在我们来实现一下:目标功能:对列表框进行内容添加,当插入的内容在列表框中已经存在时不允许插入,并给出相应的提示;当插入的内容在列表框中没有时便插入内容。目标分析:我们首先要确定的一点是必须
2、得有一个判断语句,用来判断要插入的和列表框里面的内容是否重复;因为列表框里面不一定只有一个内容,可能有多个,所以我们应该逐一判断,既然是逐一,那我们就应该借助于循环语句实现。好了,判断语句、循环语句就是我们所利用的核心。目标准备:首先看一下软件运行效果图:添加以下控件控件名 Name TextListBox ListtextBox 默认值Button Button1 默认值 添加C#如何判断列表框有无重复的项目 | 唐寒枫Button2 默认值 删除Button3 默认值 清空Button4 默认值 Button5 默认值 (PS:在这里先说一下,实现这种功能在 C#里面有两种方法,一种是我们
3、自己写算法,一种是直接利用 C#提供的方法,毋庸置疑,第二肯定是简单的。所以我们把这两种方法都实现一下,首先我们先看看我们自己写算法怎么实现)定义好控件属性,布置好界面之后我们开始写代码:private void button1_Click(object sender, EventArgs e)/添加项目#regionif (textBox1.Text = “)MessageBox.Show(“还未输入要添加的内容,该操作不能执行“, “友情提示“, MessageBoxButtons.OK, MessageBoxIcon.Information);textBox1.Focus();/提示完之
4、后接着文本框获取焦点,方便用户操作 elseif (list.Items.Count = 0) /如果列表框里面没有任何内容,此时直接添加 list.Items.Add(textBox1.Text);textBox1.Text = “;textBox1.Focus();else#endregionfor (int i = 0; i = list.Items.Count ; i+)if (textBox1.Text = list.Itemsi.ToString()/将输入的的内容和列表框原有内容进行判断MessageBox.Show(“已经有相同的内容了“,“友情提示“,MessageBoxBu
5、ttons.OK,MessageBoxIcon.Information);textBox1.Text = “;textBox1.Focus();break;else if (i = list.Items.Count - 1) /这一步很关键,如果不加这一个判断会导致重复添加一些不必要的内容。 这一步就是为了判断是否遍历了所有内容,因为list.Itemsi是从零开始的,也就是说它的实际判断个数要比count统计的个数少1,所以在这里要减去1C#如何判断列表框有无重复的项目 | 唐寒枫list.Items.Add(textBox1.Text);textBox1.Text = “;textBox1
6、.Focus();break;private void button2_Click(object sender, EventArgs e)/删除选中项/这里也应该添加一个判断,防止用户还未添加任何内容就点击删除if(list.Text=“)/如果列表框开始运行没有内容时,进行判断MessageBox.Show(“还没有选中要删除的项目或者还没有添加任何内容,不能执行删除“, “友情提示“, MessageBoxButtons.OK, MessageBoxIcon.Information);elselist.Items.RemoveAt(list.SelectedIndex);private v
7、oid button4_Click(object sender, EventArgs e)if (list.SelectedIndex = 0 | this.list.Text=“) /判断是否到达最上面,另外还要检查列表框里面是否有内容,否则也会报错MessageBox.Show(“已经上最上面一项或者还没有添加任何内容“, “友情提示“, MessageBoxButtons.OK, MessageBoxIcon.Information);elselist.SelectedIndex -= 1;private void button5_Click(object sender, EventAr
8、gs e)if (list.SelectedIndex = list.Items.Count - 1)MessageBox.Show(“已经是最后一项了,不能继续了“, “友情提示“, C#如何判断列表框有无重复的项目 | 唐寒枫MessageBoxButtons.OK, MessageBoxIcon.Information);elselist.SelectedIndex += 1;private void button3_Click(object sender, EventArgs e) /清空列表框list.Items.Clear();运行测试:C#如何判断列表框有无重复的项目 | 唐寒枫
9、以上就是我们自己写的算法,现在我们看看 C#提供的方法:/ /这也是判断插入的项是否已经存在,这是C#自带的一个方法private void button6_Click(object sender, EventArgs e)if (list.Items.Contains(textBox1.Text) = false)list.Items.Add(textBox1.Text);从中可以看出,我们就死利用了一个“Contains” 方法,它的作用就是:确定指定的项是否位于集合内ok,第二种方法完成!看完之后你是不是顿时有吐血的感觉?就这么点代码?没错,就这些,剩下的功能根据自己的需要去写吧。 。 。 。 。从这里也可以看出,C#集成度相当的高,一些常用的算法已经事先帮你写好了,我们只需要调用即可,提高了工作效率。但是本人还是建议,在练习之中能自己写算法就自己写算法,锻炼自己分析问题、解决问题的能力,真到了实际工作当然是越快越好了,能“偷懒”就偷懒 O(_ )O 。C#虽然好用,但是如果你一直使用它提供的东西,慢慢的你的逻辑思维能力可能就会下降。我一直就建议我身边的朋友说,学习就要学会三多:多看、多练、多悟