说个思路吧,不一定最好,你遍历一下这个list,只要比较相同一次,就输出一个,而且不用再向下遍历了(即退出这个循环),最后都遍历完就行了

解决方案 »

  1.   

    for(int i=0; i<arraylist.count;i++)
    {
    for(int j =0;j<arryalist.count;j++)
    {
    if(i!= j && arraylist[i].tostring() == arraylist[j].tostring()
    {
    string same = arraylist[i].tostring();
    //处理一样的
    }
    }
    }
      

  2.   

    for(int i=0; i<arraylist.count;i++)
    {
    for(int j =0;j<arryalist.count;j++)
    {
    if(i!= j && arraylist[i].tostring() == arraylist[j].tostring()
    {
    string same = arraylist[i].tostring();
    //处理一样的
    }
    }
    }
      

  3.   

    删除重复项
    http://blog.csdn.net/burningcpu/archive/2007/05/25/1625323.aspx
    http://blog.csdn.net/burningcpu/archive/2007/05/25/1625323.aspx
      

  4.   

    public static void CheckStr(string Path)
            {
                ArrayList al = InsertStr(Path);
                for (int i = 0; i < al.Count; i++)
                {
                    for (int j = i + 1; j < al.Count; j++)
                    {
                        string strFront = GetStr(al[i].ToString().Trim(), al[i].ToString().Trim().IndexOf('/') + 1);//截取字符串的方法
                        string strBack = GetStr(al[j].ToString().Trim(),al[j].ToString().Trim().IndexOf('/')+1);//截取字符串的方法                    if (strFront == strBack)
                        {
                            HttpContext.Current.Response.Write(al[i].ToString().Trim());
                            HttpContext.Current.Response.Write("<br/>");                        break;
                        }                    
                    }
                }
            }我写代码在这个,测试过了不行。请大家指教
      

  5.   

    public static void CheckStr(string Path) 
            { 
                ArrayList al = InsertStr(Path);
                ArrayList list=new ArrayList(); 
                for (int i = 0; i < al.Count-1; i++) 
                {
                        if(list.Contains(al[i])) break;
                        list.Add(al[i]);
                        int pos=al.IndexOf(al[i],i+1);
                        if(pos>-1)
                        {               
                            HttpContext.Current.Response.Write(i+" "+al[i].ToString().Trim()); 
                            HttpContext.Current.Response.Write("<br/>");                     
                        } 
                } 
            } 
      

  6.   

    你可以自己测试一下,
    list对不通的项只Add一次,如果所遍历的项已存在,则break,即:if(list.Contains(al[i])) break; 
     
      

  7.   

    再声明一个临时list,
    插入前,对临时list进行查找匹配……
      

  8.   


        class App
        {
            static void Main()
            {
                ArrayList list = new ArrayList();
                list.Add("one");
                list.Add("one");
                Console.WriteLine("{0},{1}", list[0], list[1]);
                Console.ReadKey();
            }
        }编译成功……
      

  9.   

    搞错了,
    把break改成continue就可以了
      

  10.   

    public static void CheckStr(string Path)
            {
                ArrayList al = InsertStr(Path);
                ArrayList list = new ArrayList();
                for (int i = 496; i < al.Count - 1; i++)
                {
                    string strFront = GetStr(al[i].ToString().Trim(), al[i].ToString().Trim().IndexOf('/') + 1);
                    if (list.Contains(strFront)) continue;
                    list.Add(strFront);
                    int pos = al.IndexOf(strFront, i + 1);
                    if (pos > -1)
                    {
                        HttpContext.Current.Response.Write(i + " " + GetStr(al[i].ToString().Trim(), al[i].ToString().Trim().IndexOf('/') + 1));
                        HttpContext.Current.Response.Write(" <br/>");
                    }                
                }
            } 
    以上改成continue,还是不行呀
      

  11.   

      for (int i = 496; i < al.Count - 1; i++) 为什么i=496还不行是怎样个不行法?
      

  12.   

                    int pos = al.IndexOf(strFront, i + 1); 
    这样?
    你的重复项究竟指的是跟strFront还是跟al[i]重复啊?
    真看不懂了。。
    你把实际的数据发些出来看看吧。。
      

  13.   


    实际数据是一个.txt文件中的内容。我将.txt中的文件读取出来放在ArrayList中了。数据如下   —陈凛访谈 
      关于转型 
      笔者:你初进逸飞集团,以你对商业的理解,公司与你想象中的有差别吗? 
        关于转型 
      陈凛:我一直觉得,我父亲是个大方向抓得很紧的人,灵感不断,每件事都
      他做模特、环境艺术包括现在的房地产项目都是,把艺术和文化产业相结合,都非常领先。这是一个很好的前提
       
       
       关于转型 
       把国外的资本带进来,把国内的带出去,联结所有的人做生意。我们提出一个概念,找到一个平台,像搭积木一样,把这些东西都搭上去就好了。 
      我父亲是从做实业的角度考虑,我是从投资的角度。这是有根本上的不一样的。 
      笔者:以后逸飞集团的方向应该是朝你这个方向走? 
       —陈凛访谈 
       关于转型 
       —陈凛访谈 
      陈凛:对,我觉得是应该慢慢朝我这个方向走。 
      笔者:现在服装还是逸飞集团的主业吗? 
      “逸飞”悬疑--专访陈凛、陈逸鸣 
      “两年前我就在考虑转型” 
      —陈凛访谈 
      关于转型 
      

  14.   

    al里存的是什么数据?为什么你要做GetStr(al[i].ToString().Trim(), al[i].ToString().Trim().IndexOf('/') + 1); 处理?
      

  15.   

    Dictionary<string, int> dict = new Dictionary<string, int>();
                foreach (string str in list) {
                    if(!dict.ContainsKey(str)) {
                        dict.Add(str,1);
                    }else {
                        dict[str] = ++dict[str];
                    }
                }
                foreach (KeyValuePair<string, int> pair in dict) {
                    Console.WriteLine("{0}\t{1}",pair.Value,pair.Key);
                }
      

  16.   

    private void button1_Click(object sender, System.EventArgs e)
    {
    string[] array=new string[]{"张三","李四","王五","黄六","陈七","王五","黄六","褚八","张三"};
    ArrayList al = new ArrayList(array); 
    ArrayList list=new ArrayList(); 
    for (int i = 0; i < al.Count-1; i++) 

    if(list.Contains(al[i])) continue; 
    list.Add(al[i]); 
    int pos=al.IndexOf(al[i],i+1); 
    if(pos>-1) 
    {              
    this.textBox2.Text+=i+" "+al[i].ToString().Trim()+"\r\n";                     

    }  }
    输出结果:
    0 张三
    2 王五
    3 黄六
      

  17.   

    我把以上的全部解决方案放到我的博客中,有兴趣的朋友可以看一下
    http://blog.csdn.net/lltse85/archive/2009/02/12/3883814.aspx