I have two Lists
List<Employee> previous=new List<Employee>()
{
new Employee()
{
Id = 1,
Name = "1"
},
new Employee()
{
Id = 2,
Name = "2"
},
new Employee()
{
Id = 6,
Name = "6"
},
new Employee()
{
Id = 8,
Name = "8"
}
};
List<Employee> latest=new List<Employee>()
{
new Employee()
{
Id = 1,
Name = "1"
},
new Employee()
{
Id = 3,
Name = "3"
},
new Employee()
{
Id = 5,
Name = "5"
},
new Employee()
{
Id = 6,
Name = "6"
}
};
Now i wants to compare and want result like below which shows me which item is
- Added(If not present in previous and also present in latest)
- Removed(If present in previous and not present in latest)
- NoChange(If present in both previous and latest)
and it looks like
var employeeActions = new List<EmployeeStatus>()
{
new EmployeeStatus()
{
Action = "NoChange",
Employee = new Employee()
{
Id = 1,
Name = "1"
}
},
new EmployeeStatus(){
Action = "Removed",
Employee = new Employee()
{
Id = 2,
Name = "2"
}
},
new EmployeeStatus(){
Action = "Added",
Employee = new Employee()
{
Id = 3,
Name = "3"
}
},
new EmployeeStatus(){
Action = "Added",
Employee = new Employee()
{
Id = 5,
Name = "5"
}
},
new EmployeeStatus(){
Action = "NoChange",
Employee = new Employee()
{
Id = 6,
Name = "6"
}
},
new EmployeeStatus(){
Action = "Removed",
Employee = new Employee()
{
Id = 8,
Name = "8"
}
}
};
How to achieve it using LINQ to Object ?