Click here to Skip to main content
Click here to Skip to main content

Tagged as

Go to top

Replacing foreach loop with LINQ

, 5 Dec 2011
Rate this:
Please Sign up or sign in to vote.
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:
var bestStudents = new List<Student>();
foreach (var s in students)
{
    if (s.Grade > 9)
    {
        bestStudents.Add(s);
    }
}
 
LINQ way:
//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)

Share

About the Author

Delashmate
Software Developer GE
Israel Israel
I am Software Developer at GE company for more than 2 years,
 
I created LINQTutorial.net since I didn't found any other good dedicate LINQ tutorial

Comments and Discussions

 
Questionnested foreach to linq PinmemberMember 1089911622-Jun-14 1:33 
GeneralMy vote of 3 Pinmemberpushkar723-Sep-13 1:12 
GeneralRe: Ok, thanks for your comments :) By the way in case there is... PinmemberDan De'lashmate9-Nov-11 2:41 
GeneralRe: Well... in that case I agree and disagree. LINQ will be bett... PinmvpPaulo Zemek9-Nov-11 2:26 
GeneralReason for my vote of 1 Horrible idea. The Linq way is MUCH ... PinmemberSledgeHammer016-Dec-11 4:47 
GeneralRe: Who said we have performance problem?! PREMATURE OPTIMIZATI... PinmemberDelashmate7-Dec-11 1:20 
GeneralReason for my vote of 3 To me it is a matter of style. In th... PinmemberOshtri Deka10-Nov-11 12:33 
GeneralReason for my vote of 2 I already posted... but the reason i... PinmvpPaulo Zemek9-Nov-11 1:45 
GeneralWell... you may replace the <code>if</code> with linq... but... PinmvpPaulo Zemek9-Nov-11 1:44 
GeneralRe: Who said I need to iterate through the "bestStudents" in the... PinmemberDan De'lashmate9-Nov-11 2:17 
GeneralRe: http://msdn.microsoft.com/en-us/library/bwabdf9z.aspx Pinmemberstooboo12-Dec-11 13:40 
GeneralRe: http://msdn.microsoft.com/en-us/library/bwabdf9z.aspx PinmemberLittleGreenMartian14-May-13 20:01 
GeneralThe second point Riz makes is no biggie. You can still write... Pinmembertdmeers24-Oct-11 15:46 
GeneralIn case some don't know, the result will not be 100% the sam... PinmemberRiz Thon24-Oct-11 14:47 
GeneralReason for my vote of 5 I Liked it! Pinmemberonkuda0724-Oct-11 12:28 
GeneralReason for my vote of 2 a silly idea. Pinmemberrj4524-Oct-11 11:27 
GeneralRe: For me it's beautiful, I Hope the silent majority see that t... PinmemberDan De'lashmate24-Oct-11 11:35 
GeneralReason for my vote of 1 You say advantageS of replacing a fo... Pinmemberdrkaj24-Oct-11 8:36 
GeneralRe: I will try do better next time :) PinmemberDan De'lashmate24-Oct-11 10:09 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web04 | 2.8.140916.1 | Last Updated 5 Dec 2011
Article Copyright 2011 by Delashmate
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid