Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

8
  • 29
    Honestly I'd say that Linq makes the intention objectively more readable while for loops make the mechanism objectively more readable. Commented Dec 4, 2012 at 9:51
  • 19
    I would run as fast as I can from someone that tells me that the for-for-if version is more readable than the intersect version. Commented Dec 4, 2012 at 12:08
  • 3
    @Konamiman - That would depend on what a person looks for when they think of "readability." jk.'s comment illustrates this perfectly. The loop is more readable in the sense that you can easily see how it's getting its end result, while the LINQ is more readable in what the end result should be. Commented Dec 4, 2012 at 16:27
  • 2
    That's why the loop goes into the implementation, and then you use Intersect everywhere. Commented Dec 4, 2012 at 17:39
  • 9
    @Shauna: Imagine the for-loop version inside a method doing several other things; it's a mess. So, naturally, you split it into it's own method. Readability-wise, this is the same as IEnumerable<T>.Intersect, but now you've duplicated framework functionality and introduced more code to maintain. The only excuse is if you need a custom implementation for behavioral reasons, but we're only talking about readability here. Commented Dec 4, 2012 at 18:11