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

Muhammad Maisam Abbas 2024年2月16日
  1. 使用 C# 中的 HashSet 類從列表中刪除重複項
  2. 使用 C# 中的 LINQ 方法從列表中刪除重複項
從 C# 中的列表中刪除重複項

本教程將介紹從 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

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - Csharp List