在C#中,去重函數通常用于處理集合或數組中的重復元素。為了實現這個功能,你可以使用HashSet類,它是一個無序且不包含重復元素的集合。以下是一個簡單的示例,展示了如何創建一個去重函數:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
int[] inputArray = { 1, 2, 3, 4, 4, 5, 6, 6, 7 };
int[] uniqueArray = RemoveDuplicates(inputArray);
Console.WriteLine("Original array:");
foreach (int item in inputArray)
{
Console.Write(item + " ");
}
Console.WriteLine("\nUnique array:");
foreach (int item in uniqueArray)
{
Console.Write(item + " ");
}
}
static int[] RemoveDuplicates(int[] inputArray)
{
HashSet<int> uniqueSet = new HashSet<int>(inputArray);
return uniqueSet.ToArray();
}
}
在這個示例中,我們定義了一個名為RemoveDuplicates
的函數,它接受一個整數數組作為參數。我們使用HashSet類來存儲不重復的元素,然后將HashSet轉換為數組并返回。
關于參數設置的建議:
static T[] RemoveDuplicates<T>(T[] inputArray)
{
HashSet<T> uniqueSet = new HashSet<T>(inputArray);
return uniqueSet.ToArray();
}
IEquatable<T>
接口的類型,可以這樣定義函數:static T[] RemoveDuplicates<T>(T[] inputArray) where T : IEquatable<T>
{
HashSet<T> uniqueSet = new HashSet<T>(inputArray);
return uniqueSet.ToArray();
}
IEqualityComparer<T>
參數,這樣用戶就可以傳入自定義的比較器:static T[] RemoveDuplicates<T>(T[] inputArray, IEqualityComparer<T> comparer)
{
HashSet<T> uniqueSet = new HashSet<T>(inputArray, comparer);
return uniqueSet.ToArray();
}
這樣,你的去重函數將更加靈活,可以適應不同的場景和需求。