本帖最后由 sxdxgzr@126.com 于 2013-8-4 01:42 编辑
这题本质上就是集合问题啊关键在于找出listbox1中相同项出现4次的项的值:
第一步: 找出相同项出现4次的方法:
方法1:
可以考虑用个字典Dictionary<string,int> 键值为listbox1每项的value,值为每项出现的次数。(写个for循环判断就可以解决)
方法2:
用Linq:利用listbox1.Items找出出现4次的项
第二部:移除出现4次的项。
for (int i = 0; i < 4; i++)
{
listBox1.Items.RemoveAt(listBox1.Items.IndexOf(itemname));
}
如:Form1放一个listBox1,btnRemove ,并设置listBox1的项为ABBBBCC,点击按钮时候移除- using System;
- using System.Linq;
- using System.Windows.Forms;
- namespace ListBox
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- btnRemove.Click += btnRemove_Click;
- }
- void btnRemove_Click(object sender, EventArgs e)
- {
- //查询相同项出现4次的项
- var match = from object item in listBox1.Items
- group item by item
- into g
- where g.Count() == 4
- select g.Key;
- //集合中移除相同项出现4次的项
- foreach (var g in match)
- {
- for (int i = 0; i < 4; i++)
- {
- listBox1.Items.RemoveAt(listBox1.Items.IndexOf(g));
- }
- }
- }
- }
- }
复制代码 |