星期一, 6月 30, 2014

[C#] 移除 Arrary 中的重覆值

MVA Twenty C# Questions Explained - [​18 How do I remove duplicates from an array?]
  • LINQ 範例:
用擴充方法 DISTINCT() 來移除重覆值,最後再利用 ToArary() 轉回 Arrary
int[] arr = new int[] { 1, 2, 2, 3, 3, 3, 4, 4, 4, 4 };
int[] result = arr.Distinct().ToArray();
  • List 範例
建立一個 List,掃原本的 Arrary,該資料假如不在 List 中,就把它加進去
int[] arr = new int[] { 1, 2, 2, 3, 3, 3, 4, 4, 4, 4 };

List<int> resultList = new List<int>();

foreach (int Data in arr)
{
    if (!resultList.Contains(Data))
    {
        resultList.Add(Data);
    }
}

int[] result = resultList.ToArray();
課程中也有介紹說不要去對 Arrary 進行移除的動作,直接利用 LINQ 來移除、產生新 Arrary 並取代才是最有效率的作法

沒有留言:

張貼留言