To update a list from another list, Here is the Syntax.
Syntax
foreach (var item in List2)
{
List1.Where(m=>m.UniqueField == item.UniqueField).FirstOrDefault().Property = item.Property;
}
Example
1. Create Student model
class Student
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public double Marks { get; set; }
public Student(int ID, string Name, int Age)
{
this.ID = ID;
this.Name = Name;
this.Age = Age;
}
public Student(int ID, double Marks)
{
this.ID = ID;
this.Marks = Marks;
}
}
2. Create Student List as listStudents
List<Student> listStudents = new List<Student>()
{
new Student(1, "Sam", 12),
new Student(2, "Patrick", 15),
new Student(3, "Adam", 10),
new Student(4, "Raj", 9),
new Student(5, "Seema", 14)
};
3. Create Student Marks as listMarks
List<Student> listMarks = new List<Student>()
{
new Student(1,89.5),
new Student(2,97.5),
new Student(3,96.0),
new Student(4,78.0),
new Student(5,84.7)
};
4. Now Update listStudents from listMarks
Console.WriteLine("ID Name Marks");
foreach (var StudentMarks in listMarks)
{
var selectedStudent = listStudents.Where(S => S.ID == StudentMarks.ID).FirstOrDefault();
selectedStudent.Marks = StudentMarks.Marks;
Console.WriteLine("{0} {1} {2} ", selectedStudent.ID, selectedStudent.Name, selectedStudent.Marks);
}
Console.ReadKey();