首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

System.Array中GetValue(i)获取的两项的值比较有关问题

2011-12-25 
System.Array中GetValue(i)获取的两项的值比较问题需要一个方法能够将数组中的重复项移除,数组可能是int,s

System.Array中GetValue(i)获取的两项的值比较问题
需要一个方法能够将数组中的重复项移除,数组可能是int,string或者其他类型的,
方法如下:

public   static   ArrayList   RemoveRepeate(Array   arr)
                {
                        bool   flag   =   false;
                        Type   itemType   =   arr.GetValue(0).GetType();
                        ArrayList   itemList   =   new   ArrayList();
                        for   (int   i   =   0;   i   <   arr.Length;   i++   )
                        {
                                flag   =   false;
                                for   (int   j   =   i   +   1;   j   <   arr.Length;   j++   )
                                {
                                        //Array.GetValue(int)返回的是object类型的数据,在这里使用==比较显然不合适,但是怎么才能将Array.GetValue(int)转换成特定的类型后比较呢?
                                        if   (arr.GetValue(i)   ==   arr.GetValue(j))
                                        {
                                                flag   =   true;
                                                break;
                                        }
                                }
                                if(!flag)
                                {
                                        itemList.Add(arr.GetValue(i));
                                }
                        }
                        return   itemList;
                }

[解决办法]
public static ArrayList RemoveRepeate(Array arr)
{
      ArrayList arTemp = new ArrayList();


foreach (Object o in arr)
{
if (arTemp.IndexOf(o) < 0)
{ arTemp.Add(o); }
}
}

热点排行