c# Удалить повторяющееся элементы из списка

241
06 июня 2018, 16:20

Как оказалось метод Distinct не работает когда мы хотим убрать одинаковые сложные элементы из списка

 public class User
    {
    public User(string name, string surname)
        {
            Name = name;
            Surname = surname;
        }
        public string Name;
        public string Surname;
    }
public static List<User> UserList = new List<User>();
UserList.Add(new User("Ivan","Ivanov"));
UserList.Add(new User("Ivan", "Andreev"));
UserList.Add(new User("Ivan", "Ivanov"));
UserList.Add(new User("Ivan", "Ivanov"));
var u = UserList.Distinct();

Все равно получается 4 элемента. Как поступить? Может есть способ это решить через LINQ?

Answer 1
class UserComparer : IEqualityComparer<User>
{
  public bool Equals(User x, User y)
  {
    return x.Name == y.Name && x.Surname == y.Surname;
  }
  public int GetHashCode(User x)
  {
    return (x.Name + "_" + x.Surname).GetHashCode();
  }
}
var u = UserList.Distinct(new UserComparer());
Answer 2

Переопределите методы Equals и GetHashCode для вашего класса, тогда метод Dinstinct должен заработать.

READ ALSO
EPPlus ломает xlsx таблицы

EPPlus ломает xlsx таблицы

Собственно при применении вот этого кода либы EPPlus, таблица ломаетсяЯ после изменения загружаю таблицу на сервера яндекса, где она уже не может...

241
Как грамотно связать c# и Sql server?

Как грамотно связать c# и Sql server?

Есть код подключения к БД и запрос к ней -

248
Исходники sscli

Исходники sscli

Всем доброго вечера! Где можно посмотреть исходники sscli? Все ссылки в старых статьях , наподобие этой переадресуют на главную страницу МайкрософтНаходил...

247
помогите ДОБАВИТЬ новые данные в JSON файл (C#)

помогите ДОБАВИТЬ новые данные в JSON файл (C#)

У меня есть определённый JSONХраниться на сайте: http://frzee

218