请问如何删除重复的字符串?
我的字符串是动态生成的,形式固定,中间都有个,号分隔,但是文字内容不固定str="小明,小张,小明,小李,小张,小天,小明,小红";请问如何处理掉重复的人名只留下一个相同的就行了,就是得到str="小明,小张,小李,小天,小红";请问怎样过滤掉?谢谢大家

解决方案 »

  1.   

    string str="小明,小张,小明,小李,小张,小天,小明,小红"; string[]   csdn=str.Split(',');   
      SortedList   list=new   SortedList();   
      for(int   i=0;i<csdn.Length;i++)   
      {   
      if(!list.ContainsKey(csdn[i]))   
      list.Add(csdn[i],ch[i]);   
      }   
      for(int   i=0;i<list.Count;i++)   
      {   
      Console.WriteLine(list.GetByIndex(i));   
      }
      

  2.   

    //上面那个写错了!ch换成csdn
    string str = "小明,小张,小明,小李,小张,小天,小明,小红";            string[] csdn = str.Split(',');
                SortedList list = new SortedList();
                for (int i = 0; i < csdn.Length; i++)
                {
                    if (!list.ContainsKey(csdn[i]))
                        list.Add(csdn[i], csdn[i]);
                }
                for (int i = 0; i < list.Count; i++)
                {
                    Console.WriteLine(list.GetByIndex(i));
                }
      

  3.   


                string str = "小明,小张,小明,小李,小张,小天,小明,小红";
                string[] items = str.Split(',');
                string newStr = string.Empty;
                for (int i = 0; i < items.Length; i++)
                    if (!newStr.Contains(items[i]))
                        newStr += items[i] + ",";            if (newStr.Length > 0)
                    newStr = newStr.Substring(0, newStr.Length - 1);
    如果这个str = "小明,小张,小明,小李,小张,小天,小明,小红";如果是你生成的,而不是第三方提供给你的,那么在生成时,你就应该进行控制了。
    如:
       if (!str.Contains("小明"))
          str+="小明,";
      

  4.   

    SortedList 如果用不惯的话,用我的这个 ArrayList
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
    string str = "小明,小张,小明,小李,小张,小天,小明,小红"; ArrayList myarray = new ArrayList(); myarray = getClean(str); foreach (object var in myarray)
    {
    Console.Write(var.ToString());
    Console.Write("  ");
    }

    Console.ReadLine();
            }
    static ArrayList getClean(string str)
    {
    string[] temp; ArrayList arraylist = new ArrayList();

    temp = str.Split(','); arraylist.Add(temp[0]); for (int i = 0; i < temp.Length; i++)
    { if (arraylist.IndexOf(temp[i]) != -1)
    {
    continue;
    }
    else
    {
    arraylist.Add(temp[i]);
    }

    }
    return arraylist;
    }
            
    }
    }
      

  5.   

    最重要的一个方法的位置是判断 arraylist里有没的这个数,也可以用 arraylist.Contains(temp[i]) 来判断,相应修改一下就是另外一种写法了,原理都一样