设有一数组 p[],里面存在重复的,现要使数组中不存在重复的 我的思想如下 但有些地方执行不到
 代码如下
p = tstr.Split(',');
tp = tstr.Split(',');
//对号码队列进行重复判断并删除重复的
for(int i=1;i<tp.Length;i++)
{
  p[i] = "";
}
int k = 1;//记录p中存在元素个数
for(int i=1;i<tp.Length;i++)
{
  if(k==1&&tp[i]!=p[0])
  {
     p[k] = tp[i];
     k++;
  }
 else if(k!=1)
  {
    for(int j=0;j<k-1;j++)
   {
int tk = k-1; 
if(tp[i] == p[j])
{
   break;
}
else if(j==tk)
{
   p[k] = tp[i];
   k++;
   break;
}
else {};
     }
   }
  else {};
}调试发现 无法执行到 
else if(j==tk)
{
   p[k] = tp[i];
   k++;
   break;
}
里面 大家看有什么遗漏 或者有更好的解决办法??

解决方案 »

  1.   

    如下
    //init your array here
    for(int i=1;i<tp.Length;i++)
    {
    p[i] = "";
    }
    int k = 1;//记录p中存在元素个数

    for(int i=1;i<tp.Length;i++)
    {
    int n = 0;
    for( ; n < k; n++ )
    if( tp[i] == p[n] )
    break;
    if( n == k )
    {
    p[k++] = tp[i];
    }
    }
      

  2.   

    string tstr="cc,ss,dd,gg,ss";
    string[] p = tstr.Split(',');
    Hashtable hs=new Hashtable();
    try
    {
    foreach(string Ts in p)
    {
    hs.Add(Ts,"");
    }
    }
    catch{}
    string[] p=new string[hs.Count];
    hs.Keys.CopyTo(p,0);