So, to achieve our requirement we need to use GroupBy like below:
List<Employee> DistinctEmployee = AllEmployee
.GroupBy(CurrentEmployee => CurrentEmployee.EmployeeType)
.Select(EmployeeRecords => EmployeeRecords.First())
.ToList();
We can also define groups on multiple properties, like below:
List<Employee> DistinctEmployee = AllEmployee
.GroupBy(CurrentEmployee => CurrentEmployee.EmployeeType, CurrentEmployee.Name)
.Select(EmployeeRecords => EmployeeRecords.First())
.ToList();
There must be other simpler ways to achieve above.