HOWTO · Csharp

從 C# 中的列表中刪除重複項

有兩種主要方法可用於從 C# 中的列表中刪除重複元素,即 HashSet 方法和 LINQ 方法。

本頁內容

本教程將介紹從 C# 中的列表中刪除重複元素的方法。

使用 C# 中的 HashSet 類從列表中刪除重複項

HashSet用於在 C# 中建立一個集合。集合是眾所周知的不同物件的無序集合,這意味著集合的元素是無序的,不會重複。我們可以通過將列表儲存到 HashSet 中,然後使用 LINQ 的 ToList() 函式將該 HashSet 轉換回列表中來刪除列表中的重複元素。以下程式碼示例向我們展示瞭如何使用 C# 中的 HashSet 類從列表中刪除重複的元素。

using System;
using System.Collections.Generic;
using System.Linq;

namespace remove_duplicates_from_list {
  class Program {
    static void displayList(List<int> list) {
      foreach (var item in list) {
        Console.WriteLine(item);
      }
    }
    static void Main(string[] args) {
      List<int> listWithDuplicates = new List<int> { 1, 2, 1, 2, 3, 4, 5 };
      HashSet<int> hashWithoutDuplicates = new HashSet<int>(listWithDuplicates);
      List<int> listWithoutDuplicates = hashWithoutDuplicates.ToList();
      displayList(listWithoutDuplicates);
    }
  }
}

輸出:

1
2
3
4
5

我們在上面的程式碼中宣告並初始化了具有重複值 listWithDuplicates 的整數列表。然後,通過在 HashSet 類的建構函式中傳遞列表,將列表轉換為 hasWithoutDuplicates 集。然後,我們使用 LINQ ToList() 方法將集合轉換回整數列表 listWithoutDuplicates。最後,我們在 listWithoutDuplicates 列表中顯示了元素。

使用 C# 中的 LINQ 方法從列表中刪除重複項

LINQ 將查詢功能整合到 C# 的資料結構中。LINQ 的 Distinct() 函式用於從 C# 的資料結構中選擇唯一值。LINQ 的 ToList() 函式將元素集合轉換為 C# 中的列表。我們可以使用 Distinct() 函式從列表中選擇唯一的,非重複的值,然後使用 LINQ 的 ToList() 函式將選定的值轉換回列表。以下程式碼示例向我們展示瞭如何使用 C# 中的 LINQ 方法從列表中刪除重複值。

using System;
using System.Collections.Generic;
using System.Linq;

namespace remove_duplicates_from_list {
  class Program {
    static void displayList(List<int> list) {
      foreach (var item in list) {
        Console.WriteLine(item);
      }
    }
    static void Main(string[] args) {
      List<int> listWithDuplicates = new List<int> { 1, 2, 1, 2, 3, 4, 5 };
      List<int> listWithoutDuplicates = listWithDuplicates.Distinct().ToList();
      displayList(listWithoutDuplicates);
    }
  }
}

輸出:

1
2
3
4
5

我們在上面的程式碼中宣告並初始化了具有重複值 listWithDuplicates 的整數列表。然後,我們使用 LINQ 的 Distinct() 函式從此列表中選擇唯一值。然後,我們使用 LINQ ToList() 函式將選定的值轉換為整數列表 listWithoutDuplicates