Avoid Repeated Execution of LINQ Queries in C#

LINQ queries follow deferred execution. This means when you access a LINQ query, it will get executed. If not well designed, it will execute every time you access it. In order to avoid that, convert the result to a list and then do further operations on it.

The below query explains the difference:

int[] kidsAges = { 10, 8, 12, 14, 15, 16 };var youngTeens = kidsAges.Where(k = k  var youngTeensCount = youngTeens.Count();var youngTeensMaxAge = youngTeens.Max();

In the above example, the LINQ query is executed twice. To avoid this, do a .ToList()?on the LINQ Query and then use its result.

int[] kidsAges = { 10, 8, 12, 14, 15, 16 };var youngTeens = kidsAges.Where(k => k < 14).ToList();var youngTeensCount = youngTeens.Count();var youngTeensMaxAge = youngTeens.Max();
Share the Post:
Share on facebook
Share on twitter
Share on linkedin

More From DevX