public static ArrayList allarraly(ArrayList al,DataSet dsTable)
      {
foreach(DataRow dr in dsTable.Tables[0].Rows)
{
al.Add(dr["country"].ToString());
}
               //从dsTable中读取数据到数组al
            
int max,min,Finehave;
               //max记录外循环;min内循环;Finehave附助
max=al.Count;
               //初始化取得数姐al的元数总和
min=max;
Finehave=0;
for(int x=0; x < max ; x++ )
{ for(int i=x+1 ; i < min ;i++)
                   //i总是比X大1
{
if(al[i].ToString().Trim() == al[x].ToString().Trim())
                   //取数组第x个与x+1后的i元数比较
{   
Finehave++;
al.RemoveAt(i);
                   //如第i个元数与x元数相同将第i元数删除
i--;
                   //i不增加1
min--;
                   //数组总个数减少1
} }
max=min;
                   //外循环与内循环同步
}
return al;
}
方法写到一个公共类中就可以了啊
调用是
直接
类名.allarraly调用旧可以了.

解决方案 »

  1.   

    谢上面的盼星星.再加一个参数取得要取的数据字段whatJd
    string province="字段1"
    直接调用
    city.allarraly(value2,dsProvince,province);
    那么value2就是最终结果!问题解决给分public ArrayList allarraly(ArrayList al,DataSet dsTable,string whatJd)
    {
    foreach(DataRow dr in dsTable.Tables[0].Rows)
    {
    al.Add(dr[whatJd].ToString());
    }
                
    int max,min,Finehave;
    max=al.Count;
    min=max;
    Finehave=0;
    for(int x=0; x < max ; x++ )
    { for(int i=x+1 ; i < min ;i++)
    {
    if(al[i].ToString().Trim() == al[x].ToString().Trim()) {   
    Finehave++;

    al.RemoveAt(i);
    i--;
    min--;
    } }
    max=min; }
    return al;
    }