Чтобы удалить повторяющиеся элементы из списка C#, вы можете использовать различные методы. Вот несколько подходов:
Метод 1: использование метода Distinct
List<T> uniqueList = originalList.Distinct().ToList();
Метод 2: использование HashSet
HashSet<T> set = new HashSet<T>(originalList);
List<T> uniqueList = new List<T>(set);
Метод 3. Использование словаря
Dictionary<T, bool> dictionary = new Dictionary<T, bool>();
List<T> uniqueList = new List<T>();
foreach (T item in originalList)
{
if (!dictionary.ContainsKey(item))
{
dictionary.Add(item, true);
uniqueList.Add(item);
}
}
Метод 4. Использование методов LINQ GroupByи Select
List<T> uniqueList = originalList.GroupBy(x => x).Select(x => x.Key).ToList();
Метод 5: реализация специального IEqualityComparer
class CustomEqualityComparer : IEqualityComparer<T>
{
public bool Equals(T x, T y)
{
// Implement your comparison logic here
}
public int GetHashCode(T obj)
{
// Implement your hash code generation logic here
}
}
List<T> uniqueList = originalList.Distinct(new CustomEqualityComparer()).ToList();