Проблема при проверке сложных данных (также отображается значение dulpicate) - PullRequest
0 голосов
/ 14 июня 2019

У меня есть список объектов в той же записи, представленный два раза. Но когда я применяю отчетливый, он не удаляется, так как чувствителен к регистру.

Я пробовал тремя способами:

  1. список данных, преобразованных в анонимный тип
  2. реализовано I Equality CompareEquals в классе путем переопределения equals и хеш-кода
  3. отдельный класс для реализации I Compareequals интерфейса.

   static void Main(string[] args)
   {
        List<Employee> lstEmployee = new List<Employee>() 
        { 
              new Employee 
            { 
               sID = 100, 
               Name = "ASHOK" 
            }, 
            new Employee 
            {
               sID = 101, 
               Name = "SHAKTHI" 
            }, 
            new Employee 
            { 
               sID = 102, 
               Name = "RAVI" 
            }, 
            new Employee
            {
               sID=100,
               Name="ashok"
            } 
        };
        var lstEmployeeDetails = lstEmployee.Distinct(new EmployeeComparer());
   }  
    public class Employee
    {
       public int sID { get; set; }
       public string Name { get; set; } 
       public override bool Equals(object obj)
       {
         return this.sID == ((Employee)obj).sID && this.Name == 
         ((Employee)obj).Name;
       }
       public override int GetHashCode()
       {
         return this.sID.GetHashCode() ^ this.Name.GetHashCode();
       }
    }    


    public class EmployeeComparer : IEqualityComparer<Employee>
    { 
       public bool Equals(Employee x, Employee y)
       { 
          return x.sID == y.sID && x.Name == y.Name;
        }
        public int GetHashCode(Employee obj)
        { 
          return obj.sID.GetHashCode()^ obj.Name.GetHashCode(); 
        }
    }    

в списке дубликаты данных есть для sid = 101 пару раз (дубликаты) с маленьким регистром. Я должен получить только "ASHOK" и id = 101

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...