Submitted by: Srinath M S(srinath_ms@yahoo.com)

Tuesday Nov 21st 2017 by Srinath M S
Share:

If not well designed, a LINQ query will execute every time you access it. In order to avoid that, convert the result to a list and then do further operations on that result.

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:
Home
Mobile Site | Full Site
Copyright 2018 © QuinStreet Inc. All Rights Reserved