在C#中,有多種方法可以實現去重。選擇合適的去重函數取決于你的需求和數據類型。以下是一些建議:
HashSet
using System.Collections.Generic;
List<int> numbers = new List<int> { 1, 2, 2, 3, 4, 4, 5 };
HashSet<int> uniqueNumbers = new HashSet<int>(numbers);
List<int> deduplicatedNumbers = uniqueNumbers.ToList();
Distinct<T>()
方法是LINQ擴展方法,可用于對集合中的元素進行去重。它適用于去重可比較的類型,返回一個新的查詢結果。使用Distinct<T>()
方法如下:
using System.Linq;
List<int> numbers = new List<int> { 1, 2, 2, 3, 4, 4, 5 };
List<int> deduplicatedNumbers = numbers.Distinct().ToList();
Distinct()
,也可以使用Set<T>
:using System.Collections.Generic;
using System.Linq;
string[] words = { "apple", "banana", "apple", "orange", "banana" };
string[] deduplicatedWords = words.Distinct().ToArray();
// 或者
List<string> wordsList = new List<string> { "apple", "banana", "apple", "orange", "banana" };
HashSet<string> uniqueWords = new HashSet<string>(wordsList);
string[] deduplicatedWords = uniqueWords.ToArray();
IEquatable<T>
接口并重寫Equals()
和GetHashCode()
方法,然后使用HashSet<T>
或Distinct<T>()
方法進行去重。總之,在選擇合適的去重函數時,請考慮你的數據類型、性能和易用性。對于簡單類型,可以使用HashSetIEquatable<T>
接口并重寫Equals()
和GetHashCode()
方法。