在C#中,有多種方法可以實現去重。以下是一些常見的實現方式:
public static List<T> RemoveDuplicates<T>(List<T> list)
{
HashSet<T> set = new HashSet<T>(list);
return new List<T>(set);
}
public static List<T> RemoveDuplicates<T>(List<T> list)
{
Dictionary<T, object> dict = new Dictionary<T, object>();
List<T> result = new List<T>();
foreach (T item in list)
{
if (!dict.ContainsKey(item))
{
dict[item] = null;
result.Add(item);
}
}
return result;
}
public static List<T> RemoveDuplicates<T>(List<T> list)
{
return list.Distinct().ToList();
}
public static List<T> RemoveDuplicates<T>(List<T> list)
{
List<T> result = new List<T>();
foreach (T item in list)
{
bool isDuplicate = false;
foreach (T existingItem in result)
{
if (existingItem.Equals(item))
{
isDuplicate = true;
break;
}
}
if (!isDuplicate)
{
result.Add(item);
}
}
return result;
}
這些方法都可以實現去重功能,你可以根據具體需求和場景選擇合適的方法。