ArrayList Distinct Item – 在ArrayList中除去重複的 Item

今日有個朋友問..
怎樣可以在一個ArrayList中 找出Distinct的 Item..
E.G.除去重複的 Item.

解決方法有多個..其中一個是寫一個For Loop..
當沒有重複時
把ArrayList入面的Object 寫進去..

另外一個方法是使用LINQ

由於這是ArrayList的關係..
所以不可以直接使用List<>中的 LINQ 功能

解決方法十分簡單..
只需要把這個ArrayList變成 List<>
之後再轉換成ArrayList便可
E.G.
C#

//建立一些Dummy Data
ArrayList ArrList=new ArrayList();
ArrList.Add("1");
ArrList.Add("2");
ArrList.Add("1");
ArrList.Add("1");
ArrList.Add("3");

//建立一個新的ArrayList來儲存Distinct了的ArrayList的結果
ArrayList newList = new ArrayList();
//把ArrayList轉成Array..
//之後使用Linq的方法Distinct這個Array..
//最後把Distinct了的Array轉成Array 再用Add Range這個功能.把所有Array加進新的ArrayList上
newList.AddRange(ArrList.ToArray().Distinct().ToArray());

//用以下的程式碼顯示結果
for (int i = 0; i < newList.Count; i++)
{
   MessageBox.Show(newList[i].ToString());
}

Hope you find it useful

Leave a Reply