http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=185743

解决方案 »

  1.   

    常规的做法是把数组拷到一个新的数组,每拷一个元素就先判断一下新的数组里是不是已经存在了,如存在就不拷过去
    优化一下的话,可以先对数组排序再拷
    也可以利用hashtable
    public void test(string[] strArray)
    {
      HashTable hashtable=new HashTable();
      foreach(string str in strArray)
      {
         //因为在hashtable里如果存在相同的键,就会抛异常,这时把这个异常屏掉就可以了
         try{hashtable.Add(str,str);}catch{}
      }
      //这样hashtable.Keys里就不没有重复的字符串了
    }
      

  2.   

    思归老大的方法不错,我还有一种方法:
    string[] s1 = {"1","2","4","4"}
    Hashtable ht = new Hashtable();
    foreach(string s in s1)
    {
        try
        {
            ht.Add(s, "");
        }
        catch{}
    }
      

  3.   

    string[] str = new string[7]{"aaa","bbb","cc","dd","aaa","bbb","aa1"};
    Hashtable htb = new Hashtable();

    for(int i = 0; i< str.Length; i++)
    {
    if(!htb.ContainsValue(str[i]))
    {
    htb.Add(i,str[i]);
    Console.Write(str[i]);
    }
    }