In some cases LINQ can simplify iterative code, and in those cases, it's a good practice to switch iterative code into LINQ.
Regular foreach loop:
var bestStudents = new List<Student>();
foreach (var s in students)
{
if (s.Grade > 9)
{
bestStudents.Add(s);
}
}
LINQ way:
var bestStudents = students.Where(s => s.Grade > 9).ToList();
Why does it look better with LINQ?
- Removing the
if
statement reduces the complexity (even if just a little) - For me, declarative code is often more readable
Reference: LINQ Tutorial.
Click here for more LINQ examples