'Difference between `where` in the query object and `if` in the extension methods [closed]

I am studying LINQ.

I don't know the difference between using if in extension method and using where in query object.

The Console.WriteLine() results are the same, is there any difference in speed?

If you think about it, there seems to be a difference in readability, but that's my guess.

To be honest, I know it's a useless curious, but I was so curious about it, so I wrote it.

We look forward to hearing from you.

Oh, if there is anything in the article that needs to be improved, please advise.

...

public static IEnumerable<Student> GetTeenAgerStudents(this IEnumerable<Student> source)
{
  foreach (Student std in source)
  {
    yield return std;
  }
}

...

var teenAgerStudents = from s in studentList.GetTeenAgerStudents()
                       where s.Age >= 10 && s.Age < 20
                       select s;
...

public static IEnumerable<Student> GetTeenAgerStudents(this IEnumerable<Student> source)
{
  foreach (Student std in source)
  {
    if (std.Age >= 10 && std.Age < 20)
          yield return std;
  }
}

...

var teenAgerStudents = from s in studentList.GetTeenAgerStudents()
                       select s;

The above code is referenced from https://www.tutorialsteacher.com/linq/linq-deferred-execution.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source