在C#中,从List<T>中删除重复项可以使用以下方法:
public static List<T> RemoveDuplicates<T>(List<T> list)
{
HashSet<T> set = new HashSet<T>(list);
return set.ToList();
}
using System.Linq;
public static List<T> RemoveDuplicates<T>(List<T> list)
{
return list.Distinct().ToList();
}
public static List<T> RemoveDuplicates<T>(List<T> list)
{
for (int i = 0; i< list.Count; i++)
{
for (int j = i + 1; j< list.Count; j++)
{
if (list[i].Equals(list[j]))
{
list.RemoveAt(j);
j--;
}
}
}
return list;
}
public static List<T> RemoveDuplicates<T>(List<T> list)
{
Dictionary<T, bool> dict = new Dictionary<T, bool>();
List<T> result = new List<T>();
foreach (T item in list)
{
if (!dict.ContainsKey(item))
{
dict.Add(item, true);
result.Add(item);
}
}
return result;
}
以上方法均可以从List<T>中删除重复项。其中,使用HashSet<T>和LINQ的方法是最简单和最高效的。
领取专属 10元无门槛券
手把手带您无忧上云