for (int i = 0; i < listBox1.Items.Count; i++)
{
  this.listBox2.Items.Add(this.listBox2.Items[i].ToString());
}
请问下在遍历listbox1的时候,把相同值给删除掉,再把B_F_SENSUS_5322_36.81.12.41.07.48这种格式的转换成5322368112410748呢?就是达到图片效果!

解决方案 »

  1.   

    你应该添加时,就判断IndexOf,如果有,就不添加
      

  2.   

    最好能从绑定数据源入手删除重复 比如利用linq的 Distinct()方法,然后绑定
    string result = Regex.Replace("B_F_SENSUS_5322_36.81.12.41.07.48", @"\D", string.Empty);
                    //5322368112410748
      

  3.   

    Regex.Replace(m.Value, "_", "").Replace(".", ""));  已经解决了字符截取的问题,移除相同值怎么做呢?
      

  4.   

                for (int i = 0; i < listBox1.Items.Count; i++)
                {
                    //判断listbox1是否已经存在
                    if (!listBox2.Items.Contains(listBox1.Items[i]))
                    {
                        this.listBox2.Items.Add(this.listBox1.Items[i]);    
                    }
                }
      

  5.   

    额,注释错了,大概就是这么个意思
    用Contains方法判断。。
      

  6.   

          for (int i = 0; i < listBox1.Items.Count; i++)
                {
                    //判断listbox1是否已经存在
                    if (!listBox2.Items.Contains(listBox1.Items[i]))
                    {
                        this.listBox2.Items.Add(this.listBox1.Items[i]);    
                    }
                }
      

  7.   


                List<string> strs = new List<string>();
                foreach (string str in listBox1.Items)
                {
                    if (!strs.Contains(str))
                        strs.Add(str);
                }
                this.listBox1.Items.Clear();
                strs.ForEach(c => listBox1.Items.Add(Regex.Replace(c, "[^0-9]", "")));
      

  8.   

    吧listbox1中的值取出来放到dictionary中,directory<string,string>后面的string你可以指定一个简单的字符,比如“a”,for循环里面套一个try,catch,finally。for循环结束把dictionary倒转,取出里面的值添加到listbox2中即可