日期:2014-05-18  浏览次数:20401 次

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;
                }

------解决方案--------------------