Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

Replacing foreach loop with LINQ

2.26/5 (9 votes)
5 Dec 2011CPOL 95.9K  
Advantages of replacing a foreach loop with LINQ

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:
C#
var bestStudents = new List<Student>();
foreach (var s in students)
{
    if (s.Grade > 9)
    {
        bestStudents.Add(s);
    }
}


LINQ way:
C#
//LINQ query which generate the same result as the foreach loop above
var bestStudents = students.Where(s => s.Grade > 9).ToList();

Why does it look better with LINQ?



  1. Removing the if statement reduces the complexity (even if just a little)
  2. For me, declarative code is often more readable

Reference: LINQ Tutorial.

Click here for more LINQ examples

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)