<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4939955058371387078</id><updated>2011-11-27T15:18:34.409-08:00</updated><category term='Linq'/><title type='text'>Technoart</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-8819589265614518097</id><published>2011-01-13T05:10:00.000-08:00</published><updated>2011-01-13T05:15:56.296-08:00</updated><title type='text'>How to Suppress / Disable Script Errors in WebBrowser Control</title><content type='html'>If you want to suppress script errors in web browser control in .net just do two things&lt;br /&gt;&lt;br /&gt; 1&gt; Set web browser control property &lt;span style="font-weight:bold;"&gt;ScriptErrorsSuppressed &lt;/span&gt;= True&lt;br /&gt; 2&gt; set below option in IE&lt;br /&gt;    i) Disable Script Debugging (Internet Explorer) and&lt;br /&gt;    ii) Disable Script Debugging (Other).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-8819589265614518097?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/8819589265614518097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=8819589265614518097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/8819589265614518097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/8819589265614518097'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2011/01/how-to-suppress-disable-script-errors.html' title='How to Suppress / Disable Script Errors in WebBrowser Control'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-2021473532923701510</id><published>2010-11-25T22:03:00.000-08:00</published><updated>2010-11-25T22:11:06.549-08:00</updated><title type='text'>HashSet VS SortedSet</title><content type='html'>Today I come across a good article explaining the difference between HashSet&lt;T&gt; VS SortedSet&lt;T&gt; collections in .net &lt;br /&gt;&lt;br /&gt;Below is the link of original article&lt;br /&gt;http://msdn.microsoft.com/en-us/vcsharp/ee906600.aspx&lt;br /&gt;&lt;br /&gt;The .NET 4.0 library includes an additional collection class: The SortedSet&lt;T&gt;. &lt;br /&gt;SortedSet&lt;T&gt; will typically be faster than HashSet&lt;T&gt; when the majority of your operations require enumerating the set in one particular order. If, instead, most of the operations are searching, you’ll find better performance using the HashSet&lt;T&gt;. The frequency of insert operations also has an effect on which collection would be better. The more frequently insert operations occur, the more likely HashSet&lt;T&gt; will be faster.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-2021473532923701510?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/2021473532923701510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=2021473532923701510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/2021473532923701510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/2021473532923701510'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2010/11/hashset-vs-sortedset.html' title='HashSet&lt;T&gt; VS SortedSet&lt;T&gt;'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-1855203562203198633</id><published>2010-11-08T02:18:00.000-08:00</published><updated>2010-11-08T02:20:43.004-08:00</updated><title type='text'>LINQ – In-Memory Collections</title><content type='html'>&lt;h3&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;LINQ – In-Memory  Collections&lt;/span&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;In this article we will  cover only the querying of in-memory collections.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;This article has been  designed to give you a core understanding of &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;LINQ&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; that we will rely heavily on in  subsequent parts of this series.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Before diving into the  code it is essential to define what &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;LINQ&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; actually is. &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;LINQ&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; is not &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;C#&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; 3.0, and vice versa.  &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;LINQ&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; relies heavily on the new  language enhancements introduced in &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;C#&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; 3.0; however, &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;LINQ&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; essentially is the composition of  many standard query operators that allow you to work with data in a more  intuitive way regardless of the data source.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;The benefits of using  &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;LINQ&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; are significant – queries are a  first class citizen within the &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;C#&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; language, benefit from compile  time checking of queries, and the ability to debug (step through) queries. We  can expect the next Visual &lt;nobr style="font-weight: normal; font-size: 100%;"&gt;Studio IDE to take full advantage  of these benefits – certainly the March 2007 CTP of Visual Studio Orcas  does!&lt;/nobr&gt;&lt;/span&gt;&lt;/p&gt; &lt;h3&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;In-Memory  Collections&lt;/span&gt;&lt;/h3&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;The best way to teach new  technologies is to just to show you an example and then explain what the heck is  going on! – That will be my approach throughout this series; hopefully it is a  wise decision.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;For our first example we  will compose a query to retrieve all the items in a &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;generic List  collection&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;  (Fig. 1).&lt;/span&gt;&lt;/p&gt; &lt;h4&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Figure 1: Selecting all  the items in a generic List collection&lt;/span&gt;&lt;/h4&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; List&lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&gt; people = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&gt;() &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;{ &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span class="str"&gt;"Granville"&lt;/span&gt;, &lt;span class="str"&gt;"John"&lt;/span&gt;, &lt;span class="str"&gt;"Rachel"&lt;/span&gt;, &lt;span class="str"&gt;"Betty"&lt;/span&gt;, &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span class="str"&gt;"Chandler"&lt;/span&gt;, &lt;span class="str"&gt;"Ross"&lt;/span&gt;, &lt;span class="str"&gt;"Monica"&lt;/span&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;};&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Example1() &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;IEnumerable&lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&gt; query = from p &lt;span class="kwrd"&gt;in&lt;/span&gt; people select p;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; person &lt;span class="kwrd"&gt;in&lt;/span&gt; query) &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;    &lt;/span&gt;Console.WriteLine(person);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;}&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;The code example given in  Fig. 1 is very basic and its functionality could have been replicated easier by  simply enumerating through the items in the &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;List&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; via a &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;foreach&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; loop.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;In Fig.1 we compose a  query that will return each of the items in the &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;people&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;List&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; collection by aliasing the  &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;people&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; collection with a variable  &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;p&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; and then selecting  &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;p&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; (&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;p&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; is of type &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;string&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; remember as the  &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;people&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;List&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; is a collection of  &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;immutable  string&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;  objects).&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;You may notice that query  is of type &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;IEnumerable&lt;string&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; - this is because we know that  query will hold an enumeration of type &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;string&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;. When we &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;foreach&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; through the query the  &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;GetEnumerator&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; of query is  invoked.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;At this time it is  beneficial to look at exactly what the compiler generated code looks like (Fig.  2).&lt;/span&gt;&lt;/p&gt; &lt;h4&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Figure 2: Compiler  generated code for Fig. 1&lt;/span&gt;&lt;/h4&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Example1()&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;IEnumerable&lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&gt; query = people.Select&lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&gt;(&lt;span class="kwrd"&gt;delegate&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; p) &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; p;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;});&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; person &lt;span class="kwrd"&gt;in&lt;/span&gt; query)&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;    &lt;/span&gt;Console.WriteLine(person);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;}&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Fig. 2 reveals that our  query has actually been converted by the compiler to use an extension method (in  this case just the Select extension method is used) taking a &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;delegate&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; as its  argument.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;You will find that  queries and l&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;ambda  expressions&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;  are simply a facade that we deal with in order to make our lives easier – under  the covers the compiler is generating the appropriate code using delegates. Be  aware of this internal compiler behavior!&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Also be aware that a  cached anonymous &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;delegate&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; method is generated at compile  time as well (Fig. 3) – we will discuss this particular feature in future  articles.&lt;/span&gt;&lt;/p&gt; &lt;h4&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Figure 3: Compiler  generated cached anonymous delegate method&lt;/span&gt;&lt;/h4&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;[CompilerGenerated]&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Func&lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&gt; &lt;&gt;9__CachedAnonymousMethodDelegate1;&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;We will now take a look  at a more complex query of the same collection which retrieves a sequence of all  strings in the &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;List&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; whose length is greater than  5(Fig. 4).&lt;/span&gt;&lt;/p&gt; &lt;h4&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Figure 4: A more complex  query&lt;/span&gt;&lt;/h4&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Example2() &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;IEnumerable&lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&gt; query = from p &lt;span class="kwrd"&gt;in&lt;/span&gt; people &lt;span class="kwrd"&gt;where&lt;/span&gt; p.Length &gt; 5 &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;orderby p select p;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; person &lt;span class="kwrd"&gt;in&lt;/span&gt; query) &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;    &lt;/span&gt;Console.WriteLine(person);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;}&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;The example in Fig. 4  relies on the use of two other standard query operators – &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Where&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; and &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;orderby&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; to achieve the desired  results.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;If we examine the code  generated by the compiler for the Example2 method you will see that shown in  Fig. 5 – notice as well that we now have another two cached anonymous  &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;delegate&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; methods (Fig. 6) – each of which  having the type signature of their corresponding delegates (&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Where&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;delegate&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; and &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;orderby&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;delegate&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;).&lt;/span&gt;&lt;/p&gt; &lt;h4&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Figure 5: Compiler  generated code for Fig. 4&lt;/span&gt;&lt;/h4&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Example2()&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;IEnumerable&lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&gt; query = people.Where&lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;&gt;(&lt;span class="kwrd"&gt;delegate&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; p) &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; (p.Length &gt; 5);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;}).OrderBy&lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&gt;(&lt;span class="kwrd"&gt;delegate&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; p) &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; p;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;});&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (&lt;span class="kwrd"&gt;string&lt;/span&gt; person &lt;span class="kwrd"&gt;in&lt;/span&gt; query)&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;    &lt;/span&gt;Console.WriteLine(person);&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;&lt;span&gt;  &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;}&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;&lt;/span&gt;&lt;/pre&gt; &lt;h4&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Figure 6: Cached  anonymous delegate methods for their respective Where and orderby delegates  defined in Fig. 5&lt;/span&gt;&lt;/h4&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;[CompilerGenerated]&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Func&lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;bool&lt;/span&gt;&gt; &lt;&gt;9__CachedAnonymousMethodDelegate4;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;[CompilerGenerated]&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="kwrd"&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;span style="background: none repeat scroll 0% 0% silver; font-family: Verdana;"&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Func&lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&gt; &lt;&gt;9__CachedAnonymousMethodDelegate5;&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;The type signature of the  &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Where&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;delegate&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; (Fig. 5) is  Func&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;delegate&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; takes a string argument and  returns a bool depending on whether the string was greater than 5 characters in  length. Similarly the &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;orderby&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;delegate&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; (Fig. 5) takes a string argument  and returns a string.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-1855203562203198633?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/1855203562203198633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=1855203562203198633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/1855203562203198633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/1855203562203198633'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2010/11/linq-in-memory-collections.html' title='LINQ – In-Memory Collections'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-7150459052693615588</id><published>2010-11-08T02:11:00.000-08:00</published><updated>2010-11-08T02:13:02.268-08:00</updated><title type='text'>Linq query operators :Part 3</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-GB&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-fareast-language:EN-US;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;AsEnumerable Operator&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 13.5pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;I found the &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;AsEnumerable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; operator to be really important in understanding where the query gets executed, meaning is it going to get converted to SQL and the query would be performed on SQL server or LINQ to objects would be used and query would be performed in memory. The ideal use I have found for &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;AsEnumerable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; would be when I know that a certain functionality is not available in SQL server, I can perform part of the query using LINQ to SQL (&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Iqueryable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;) and the rest executed as LINQ to objects (&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;IEnumerable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;T&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;). Basically, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;AsEnumerable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; is a hint to perform this part of the execution using LINQ to objects. This is how the prototype looks:&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 36pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;public static IEnumerable&lt;t&gt; AsEnumerable&lt;t&gt;(&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 36pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;this IEnumerable&lt;t&gt; source);&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The prototype operates on the source of &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;IEnumerable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;T&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; and also returns an &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;IEnumerable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;T&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;. This is because standard query operators operate on &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;IEnumerable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;T&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;, whereas LINQ to SQL operates on &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;IQueryable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;T&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;, which also happens to implement &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;IEnumerable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;T&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;. So when you execute an operator like on an &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;IQueryable &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;T&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; (domain objects), it uses a LINQ to SQL implementation for the &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;where &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;clause. As a result, the query gets executed on SQL Server. But what if we knew in advance that a certain operator would fail on SQL Server since SQL Server has no implementation for it. It's good to use the &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;AsEnumerable &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;operator to tell the query engine to perform this part of the query in memory using LINQ to objects. Let's see an example: &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 36pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="margin-left: 36pt; background: none repeat scroll 0% 0% silver; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="width: 442.5pt; border: 1pt inset; padding: 0cm;" valign="top" width="590"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;public static void   AsEnumerableExample()&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    {&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          NorthwindDataContext db = new NorthwindDataContext();&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          var firstproduct = (from product in db.Products&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                         where product.Category.CategoryName == "Beverages"&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                         select product&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                         ).ElementAt(0);&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          Console.WriteLine(firstproduct.ProductName);&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    }&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 36pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;When you run this query, it would throw an exception saying that &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;elementat &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;is not supported because SQL Server does not know how to execute &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;elementAt&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;. In this case, when I add as enumerable, the query would execute fine as follows: &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="margin-left: 36pt; background: none repeat scroll 0% 0% silver; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="width: 442.5pt; border: 1pt inset; padding: 0cm;" valign="top" width="590"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;public static void   AsEnumerableExample()&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    {&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          NorthwindDataContext db = new NorthwindDataContext();&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          var firstproduct = (from product in db.Products&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                         where product.Category.CategoryName == "Beverages"&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                         select product&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                         ).AsEnumerable().ElementAt(0);&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;          Console.WriteLine(firstproduct.ProductName);&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;    }&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; line-height: normal;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;DefaultIfEmpty&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size: 13.5pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;DefaultIfEmpty&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; operator returns a default element if the input sequence is empty. If the input sequence is empty, the &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;DefaultIfEmpty&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; operator returns a sequence with a single element of default (T) which, for reference types, is &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;null&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;. Furthermore, the operator also allows you to specify the default operator that will be returned. &lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="margin-left: 36pt; background: none repeat scroll 0% 0% silver; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="width: 442.5pt; border: 1pt inset; padding: 0cm;" valign="top" width="590"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;public static void   DefaultIfEmptyExample()&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    {&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          string[] fruits = { "Apple",  "pear",  "grapes",    "orange" };&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          string banana = fruits.Where(f =&gt; f.Equals("Banana")).First();&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          Console.WriteLine(banana);&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="CS"&gt;      }&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The above example throws an exception because the first operator requires that sequence not be empty. Therefore if we were to use &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;defaultifEmpty&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;, this is how it would look:&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="margin-left: 36pt; background: none repeat scroll 0% 0% silver; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="width: 442.5pt; border: 1pt inset; padding: 0cm;" valign="top" width="590"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;public static void DefaultIfEmptyExample1()&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    {&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          string[] fruits = { "Apple",  "pear",  "grapes",    "orange" };&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          string banana =&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;              fruits.Where(f =&gt; f.Equals("Banana")).DefaultIfEmpty("Not   Found").First();&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          Console.WriteLine(banana);&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    }&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 36pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Another interesting use of &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;DefaultIfEmpty&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; is to perform a &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;left outer join &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;using &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;GroupJoin&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;. Here is an example that illustrates that:&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="margin-left: 36pt; background: none repeat scroll 0% 0% silver; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="width: 442.5pt; border: 1pt inset; padding: 0cm;" valign="top" width="590"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;public class Category&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;{&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    public string   CategoryName { get; set; }&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;}&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;public class Product&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;{&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    public string   ProductName { get; set; }&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    public string   CategoryName { get; set; }&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;}&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;public static void   LeftOuterJoin()&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    {&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          Category[] categories = {&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                      new Category{CategoryName="Beverages"},&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                      new Category{CategoryName="Condiments"},&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                      new Category{CategoryName="Dairy Products"},&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                      new Category{CategoryName="Grains/Cereals"}&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                  };&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          Product[] products = {&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                   new Product{ProductName="Chai",&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                       CategoryName="Beverages"},&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                   new Product{ProductName="Northwoods Cranberry Sauce",&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                       CategoryName="Condiments"},&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                   new Product{ProductName="Butter",&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                       CategoryName="Dairy Products"},&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                               };&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          var prodcategory =&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;              categories.GroupJoin(&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                  products,&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                  c =&gt; c.CategoryName,&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                  p =&gt; p.CategoryName,&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                  (category,  prodcat) =&gt; prodcat.DefaultIfEmpty()&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                  .Select(pc =&gt; new { category.CategoryName,&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                      ProductName = pc != null ? pc.ProductName : "No" })&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                                  ).SelectMany(s =&gt; s);&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          foreach (var product in prodcategory)&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          {&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;              Console.WriteLine("Category :{0},  Product = {1}",    product.CategoryName,&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                  product.ProductName);&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;          }&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;" lang="CS"&gt;      }&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; line-height: normal;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In the example above, I am using &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;left outer join &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;to list all categories, regardless of whether they have any products or not.&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-7150459052693615588?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/7150459052693615588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=7150459052693615588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/7150459052693615588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/7150459052693615588'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2010/11/linq-query-operators-part-3.html' title='Linq query operators :Part 3'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-3945062000940255299</id><published>2010-11-08T02:09:00.001-08:00</published><updated>2010-11-08T02:10:33.727-08:00</updated><title type='text'>Linq Query operators :part 2</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-GB&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-fareast-language:EN-US;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;h4 style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;OrderBy Operators&lt;/span&gt;&lt;/h4&gt;  &lt;p style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;order &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;operator allows collections to be ordered using &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;orderby&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;, &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;orderbydescending&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;, &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;thenby &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;and &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;thenbydescending&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;. Here is what the prototype looks like:&lt;/span&gt;&lt;/p&gt;  &lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt; &lt;span class="code-keyword"&gt;static&lt;/span&gt; IOrderedEnumerable&lt;t&gt; OrderBy&lt;t,&gt;(&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt; IEnumerable&lt;t&gt; source,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;Func&lt;t,&gt; keySelector)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;where&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;K : IComparable&lt;k&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;code&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;  &lt;p style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The operator takes an &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;IEnumerable&lt;/span&gt;&lt;/code&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;T&lt;/span&gt;&lt;/code&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; and orders the collection based on the key selector that will return the key value for each element in the sequence. The only important point that is worth mentioning is that the sorting of &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;orderby &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;and &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;orderbydescending &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;is considered unstable, meaning that if two elements return the same key based on the key selector, the order of the output could be the maintained or could be different. You should never rely on the order of elements coming out of an &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;orderby &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;call other than the field specified in the &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;orderby &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;clause. &lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Another interesting point that I found was that orderby, orderbydescending and orderbyascending take as an input source IEnumerable&lt;t&gt;, as you can see from the prototype. However, the return type is IORderedEnumerable&lt;t&gt;. The problem with that is if you want to order by more than 1 column, you cannot pass IOrderedEnumerable&lt;t&gt; since orderby takes IEnumerable&lt;t&gt;. The solution to this is to use the ThenBy or ThenByDescending operators, which take IOrderedEnumerble&lt;t&gt;. Let's proceed to an example:&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="margin-left: 36pt; background: none repeat scroll 0% 0% silver; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="width: 442.5pt; border: 1pt inset; padding: 0cm;" valign="top" width="590"&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;span class="code-keyword"&gt;static&lt;/span&gt; &lt;span class="code-keyword"&gt;void&lt;/span&gt; OrderByOperators()&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    {&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;        Book[] books =&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;        {&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;            &lt;span class="code-keyword"&gt;new&lt;/span&gt; Book{Title=&lt;span class="code-string"&gt;"ASP.NET 2.0 Website Programming: Problem -&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span class="code-string"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                Design - Solution"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                Author=&lt;span class="code-string"&gt;"Marco Bellinaso"&lt;/span&gt;},&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;            &lt;span class="code-keyword"&gt;new&lt;/span&gt; Book{Title=&lt;span class="code-string"&gt;"ASP.NET 2.0 Unleashed"&lt;/span&gt;, Author=&lt;span class="code-string"&gt;"Stephen Walther"&lt;/span&gt;},&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;            &lt;span class="code-keyword"&gt;new&lt;/span&gt; Book{Title=&lt;span class="code-string"&gt;"Pro ASP.NET 3.5 in C# 2008,  Second Edition"&lt;/span&gt;,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                Author=&lt;span class="code-string"&gt;"MacDonald and Mario Szpuszta"&lt;/span&gt;},&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;            &lt;span class="code-keyword"&gt;new&lt;/span&gt; Book{Title=&lt;span class="code-string"&gt;"ASP.NET 3.5 Unleashed "&lt;/span&gt;, Author=&lt;span class="code-string"&gt;"Stephen Walther"&lt;/span&gt;},&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;        };&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;        IEnumerable&lt;book&gt; orderedbooks =&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;              books.OrderBy(b =&gt; b.Author).ThenBy(b =&gt; b.Title);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    }&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;In the above example, I make use of both &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;orderby &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;and &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;thenby&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;. Since &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;orderby &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;only works on &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;IEnumerable&lt;/span&gt;&lt;/code&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;T&lt;/span&gt;&lt;/code&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;, I make use of the &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;thenby &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;extension method as well. The second prototype for &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;orderby &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;takes in &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Icomparable&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; and does not require the &lt;span class="code-keyword"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;type of the &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;keyselector &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;delegate to return a &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Collection &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;that implements &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;IComparable&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;. Here is what the prototype looks like:&lt;/span&gt;&lt;/p&gt;  &lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt; &lt;span class="code-keyword"&gt;static&lt;/span&gt; IOrderedEnumerable&lt;t&gt; OrderBy&lt;t,&gt;(&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt; IEnumerable&lt;t&gt; source,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;Func&lt;t,&gt; keySelector,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;IComparer&lt;k&gt; comparer);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;interface&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt; IComparer&lt;t&gt; {&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt; Compare(T x,  T y);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: blue;" lang="CS"&gt;}&lt;/span&gt;&lt;/pre&gt;  &lt;p style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;The &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;compare &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;method will return a greater &lt;span class="code-keyword"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;if the second argument is greater than the first, equal to zero if both arguments are equal and less than zero if the first argument is less than the second. Let's see an example of that:&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="margin-left: 36pt; background: none repeat scroll 0% 0% silver; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="width: 442.5pt; border: 1pt inset; padding: 0cm;" valign="top" width="590"&gt;&lt;pre style="text-align: justify;"&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;span class="code-keyword"&gt;class&lt;/span&gt; LengthComparer : IComparer&lt;string&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    &lt;span class="code-keyword"&gt;public&lt;/span&gt; &lt;span class="code-keyword"&gt;int&lt;/span&gt; Compare(&lt;span class="code-keyword"&gt;string&lt;/span&gt; title1,  &lt;span class="code-keyword"&gt;string&lt;/span&gt; title2)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    {&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;        &lt;span class="code-keyword"&gt;if&lt;/span&gt; (title1.Length &lt; class="code-keyword"&gt;return&lt;/span&gt; -1;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;        &lt;span class="code-keyword"&gt;else&lt;/span&gt; &lt;span class="code-keyword"&gt;if&lt;/span&gt; (title1.Length &gt; title2.Length) &lt;span class="code-keyword"&gt;return&lt;/span&gt; &lt;span class="code-digit"&gt;1&lt;/span&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;        &lt;span class="code-keyword"&gt;else&lt;/span&gt; &lt;span class="code-keyword"&gt;return&lt;/span&gt; &lt;span class="code-digit"&gt;0&lt;/span&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    }&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="" lang="CS"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p style="margin-left: 36pt; text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;I have created a custom comparer which compares the &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;book &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;title based on the &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;title&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;'s length. When the length of the first &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;title &lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;is less than the second &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;title&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;'s length, I return -1. If it's greater, I return 1. Otherwise, I return 0 for being equal. This is how I make use of the comparer in my LINQ query.&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="margin-left: 36pt; background: none repeat scroll 0% 0% silver; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="width: 442.5pt; border: 1pt inset; padding: 0cm;" valign="top" width="590"&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;/span&gt;&lt;/p&gt;   &lt;pre style="text-align: justify;"&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt; &lt;span class="code-keyword"&gt;static&lt;/span&gt; &lt;span class="code-keyword"&gt;void&lt;/span&gt; OrderByUsingCustomComparer()&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    {&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;        Book[] books =&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;        {&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;            &lt;span class="code-keyword"&gt;new&lt;/span&gt; Book{Title=&lt;span class="code-string"&gt;"ASP.NET 2.0 Website Programming: Problem -&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span class="code-string"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                 Design - Solution"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                Author=&lt;span class="code-string"&gt;"Marco Bellinaso"&lt;/span&gt;},&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;            &lt;span class="code-keyword"&gt;new&lt;/span&gt; Book{Title=&lt;span class="code-string"&gt;"ASP.NET 2.0 Unleashed"&lt;/span&gt;, Author=&lt;span class="code-string"&gt;"Stephen Walther"&lt;/span&gt;},&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;            &lt;span class="code-keyword"&gt;new&lt;/span&gt; Book{Title=&lt;span class="code-string"&gt;"Pro ASP.NET 3.5 in C# 2008,  Second Edition"&lt;/span&gt;,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;                Author=&lt;span class="code-string"&gt;"MacDonald and Mario Szpuszta"&lt;/span&gt;},&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;            &lt;span class="code-keyword"&gt;new&lt;/span&gt; Book{Title=&lt;span class="code-string"&gt;"ASP.NET 3.5 Unleashed "&lt;/span&gt;, Author=&lt;span class="code-string"&gt;"Stephen Walther"&lt;/span&gt;},&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;        };&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;        IEnumerable&lt;book&gt; orderedbooks = books.OrderBy(b =&gt; b.Title,&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;            &lt;span class="code-keyword"&gt;new&lt;/span&gt; LengthComparer());&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;" lang="CS"&gt;    }&lt;/span&gt;&lt;/pre&gt;   &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; line-height: 115%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt; &lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 115%;"&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-3945062000940255299?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/3945062000940255299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=3945062000940255299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/3945062000940255299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/3945062000940255299'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2010/11/linq-query-operators-part-2.html' title='Linq Query operators :part 2'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-954944370550652112</id><published>2010-11-08T01:33:00.000-08:00</published><updated>2010-11-08T02:02:01.339-08:00</updated><title type='text'>LINQ Query Operators</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-GB&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin-top:0cm;  mso-para-margin-right:0cm;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;  mso-fareast-language:EN-US;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;Query operators such as &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;SelectMany&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;, &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;Concat&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;, Object Initializers, &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;OrderBy&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;, &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; margin-left: 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;AsEnumerable&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;, &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;defaultifempty &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;and how to do &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;left join&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;s in LINQ to SQL. &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; text-align: justify; line-height: normal;"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;Standard Query Operators&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:13.5pt;"  &gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;The list of standard query operators is huge. I will cover a few of them that I found interesting and that require a bit of understanding.&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; text-align: justify; line-height: normal;"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;Select Many and Concat Operators&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:13.5pt;"  &gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;The &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;SelectMany&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; operator is used to create one to many projections. The &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;SelectMany&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; operator will return zero or more inputs for every input element. The prototype is as follows:&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   lang="CS" &gt;public static IEnumerable&amp;lt;s&amp;gt; SelectMany&lt;t,&gt;(&lt;/t,&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   lang="CS" &gt;this IEnumerable&lt;t&gt; source,&lt;/t&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   lang="CS" &gt;Func&lt;t,&gt;&gt; selector);&lt;/t,&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; margin-left: 72pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;The operator takes an input sequence of &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;T&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; and a selector delegate that takes an element of type &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;T&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;. It returns an &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;IEnumerable&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; of &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;S&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;, an intermediate output sequence. Let's see an example:&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="width: 416.1pt; margin-left: 72pt; background: none repeat scroll 0% 0% silver; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0" width="555"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="width: 416.1pt; border: 1pt inset; padding: 0cm;" valign="top" width="555"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;public static void SelectManyOperator()&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;    {&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;          string[] items = { "this",  "is",  "a",    "test" };&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;          IEnumerable&lt;char&gt; characters = items.SelectMany(s =&gt;   s.ToCharArray());&lt;/char&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;          foreach (char character in characters)&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;          {&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;              Console.WriteLine(character);&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;          }&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;    }&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt; &lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoNormalTable" style="width: 416.1pt; margin-left: 72pt; background: none repeat scroll 0% 0% silver; border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0" width="555"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="width: 416.1pt; border: 1pt inset; padding: 0cm;" valign="top" width="555"&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;public static void   ConcatAndSelectManyOperator()&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;    {&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;          string[] books = {&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;                             "ASP.NET 2.0 Website Programming: Problem -&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;                              Design   - Solution",&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;                             "Pro ASP.NET 3.5 in C# 2008,  Second Edition",&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;                             "ASP.NET 2.0 Unleashed",&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;                             "ASP.NET 3.5 Unleashed "&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;                           };&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;          IEnumerable&lt;string&gt; concatbooks = books.Take(2).Concat(books.Skip(2));&lt;/string&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;          IEnumerable&lt;string&gt; selectmanybooks = new[]{&lt;/string&gt;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;                                                        books.Take(2),&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;                                                        books.Skip(2)&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;                                                    }.SelectMany(b =&gt; b);&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt;    }&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  lang="CS" &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; text-align: justify; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;Using &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;concat &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;or &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;selectmany &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;would yield the same results, but the advantage of &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;selectmany &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;is that it allows you to merge more than two sequences to return a single sequence back.&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; line-height: normal;"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;Object Initializers&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; line-height: normal;"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; &lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;There is a C# language feature in the upcoming "Orcas" version known as object initializers. Object initializers basically allow the assignment of multiple properties or fields in a single expression. For example, a common pattern for object creation is:&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   &gt;Customer customer = new Customer();&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   &gt;customer.Name = “Roger”;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   &gt;customer.Address = “1 Wilco Way”;&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;In this case, there is no constructor of Customer that takes a name and address; however, there are two properties, Name and Address, that can be set once an instance is created. Object initializers allow the same creation with the following syntax:&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   &gt;Customer customer = new Customer() &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   &gt;    { Name = “Roger”, Address = “1 Wilco Way” };&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   &gt;In our earlier CustomerTuple example, we created the CustomerTuple class by calling its constructor. We can achieve the same result via object initializers:&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   &gt;var locals = &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   &gt;    customers&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   &gt;        .Where(c =&gt; c.ZipCode == 91822)&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   &gt;        .Select(c =&gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;color:blue;"   &gt;             new CustomerTuple { Name = c.Name, Address = c.Address });&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt; &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;Notice that object initializers allow the parentheses of the constructor to be omitted. In addition, both fields and settable properties can be assigned within the body of the object initializer.&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;We now have a succinct syntax for creating queries in C#. However, we also have an extensible way to add new operators (Distinct, OrderBy, Sum, and so on) through extension methods and a distinct set of language features useful in their own right.&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 72pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:10pt;"  &gt;The language design team now had several prototypes to get feedback on. So we organized a usability study with many participants who had experience with both C# and SQL. The feedback was almost universally positive, but it was clear there was something missing. In particular, it was difficult for the developers to apply their knowledge of SQL because the syntax we thought was ideal didn’t map very well to their domain expertise.&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  &gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-954944370550652112?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/954944370550652112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=954944370550652112' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/954944370550652112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/954944370550652112'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2010/11/linq-query-operators.html' title='LINQ Query Operators'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-722737872574656223</id><published>2010-11-08T01:21:00.000-08:00</published><updated>2010-11-08T01:22:32.108-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linq'/><title type='text'>LINQ Cast &amp; LINQ over Dataset: Part 2</title><content type='html'>1. When to use OfType &amp; Cast &lt;br /&gt;2. What support C# provides to query over datasets and data tables (LINQ to dataset). &lt;br /&gt;3. Implications of anonymous types.&lt;br /&gt;&lt;br /&gt;OfType &amp; Cast&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;public static void CastOperator()&lt;br /&gt;    {&lt;br /&gt;        ArrayList list = new ArrayList();&lt;br /&gt;        list.Add(1);&lt;br /&gt;        list.Add(2);&lt;br /&gt;        list.Add("ASP.NET 3.5 Unleashed");&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;        IEnumerable&lt;int&gt; numbers = list.Cast&lt;int&gt;();&lt;br /&gt;        foreach (int number in numbers)&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(number);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;When you run the cast operator, you get an exception because the cast operator tries to cast every element in the collection to the specified type. If it does not cast, it will throw an exception. In contrast, the OfType operator will return objects that can be cast to the right type and skips the rest from the collection.&lt;br /&gt; &lt;br /&gt;public static void OfTypeOperator()&lt;br /&gt;    {&lt;br /&gt;        ArrayList list = new ArrayList();&lt;br /&gt;        list.Add(1);&lt;br /&gt;        list.Add(2);&lt;br /&gt;        list.Add("ASP.NET 3.5 Unleashed");&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;        IEnumerable&lt;int&gt; numbers = list.OfType&lt;int&gt;();&lt;br /&gt;        foreach (int number in numbers)&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(number);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt;LINQ Over Dataset&lt;br /&gt; &lt;br /&gt;Out-of-the-box, datasets, datatables and dataviews do not have the necessary infrastructure to work in a LINQ query. This is where Microsoft introduced the new extension called System.Data.DataSetExtensions.dll, which includes DataTable extensions, DataRow extensions and TypedTableBasedExtesions. To make a data table LINQ aware, you simply need to call the AsEnumerable extension, which will return an EnumerableRowCollection consisting of DataRows. Another very useful extension method is DataRowExtensions.Field&lt;T&gt;(), which allows you to do safe casting in a LINQ query and helps prevent runtime exceptions. Once you apply the filter on a datatable using the LINQ query, the result is simply EnumerableRowCollection. In order to return back a table, we can use the new copytodatatable extension method on the result.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;public static void DataSetExample(DataTable books)&lt;br /&gt;    {&lt;br /&gt;        var implicittype = from book in books.AsEnumerable()&lt;br /&gt;                           where book.Field&lt;string&gt;("Author") == "Stephen Walther"&lt;br /&gt;                           select book;&lt;br /&gt;        var datatable = implicittype.CopyToDataTable();&lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; Anonymous Types&lt;br /&gt; The C# 3.0 language includes the ability to dynamically create new unnamed classes. This type of class is known as an anonymous type. An anonymous type has no name and is generated by the compiler based on the initialization of the object being instantiated. Since the class has no type name, any variable assigned to an object of an anonymous type must have some way to declare it. This is the purpose of the new C# 3.0 var keyword. Anonymous types allow you to define class on-the-fly using object initialization syntax and assigning to var keyword. At compile time, the C# compiler will generate a unique class which is not accessible from your code. All anonymous classes derive from System.Object and therefore inherit all the properties and methods of the object class. Anonymous classes are provided with overridden versions of Equals(), GetHashCode and ToString(). The ToString implementation for an anonymous book class would look something like this:&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;public class Book&lt;br /&gt;{&lt;br /&gt;    public string Title { get; set; }&lt;br /&gt;    public string Author { get; set; }&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt;public override string ToString()&lt;br /&gt;    {&lt;br /&gt;        StringBuilder builder = new StringBuilder();&lt;br /&gt;        builder.Append("{ BookTitle = ");&lt;br /&gt;        builder.Append(this.&lt;BookTitle&gt;i__Field);&lt;br /&gt;        builder.Append(",  BookAuthor = ");&lt;br /&gt;        builder.Append(this.&lt;BookAuthor&gt;i__Field);&lt;br /&gt;        builder.Append(" }");&lt;br /&gt;        return builder.ToString();&lt;br /&gt;    }&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-722737872574656223?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/722737872574656223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=722737872574656223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/722737872574656223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/722737872574656223'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2010/11/linq-cast-linq-over-dataset-part-2.html' title='LINQ Cast &amp; LINQ over Dataset: Part 2'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-7754459818188540461</id><published>2010-11-08T01:09:00.000-08:00</published><updated>2010-11-08T01:15:33.292-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linq'/><title type='text'>LINQ Execution</title><content type='html'>&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;How LINQ leverages differed  execution and what benefits and impacts it can have to a developer.  &lt;/span&gt;&lt;br /&gt;&lt;h3 style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;Differed and Immediate Execution  &lt;/span&gt;&lt;/h3&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;By  default, LINQ query expressions are not evaluated until you iterate over the  contents. The benefit of this differed execution allows the same LINQ query to  be executed multiple times, giving you the latest results. However, there would  be times when differed execution behavior would not be acceptable due to  performance reasons of the query being executed every time. To prevent this  behavior, the .NET Framework defines a number of extension methods such as  &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;ToArray&lt;/span&gt;&lt;/code&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;T&lt;/span&gt;&lt;/code&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;()&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;, &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;ToDictionary&lt;/span&gt;&lt;/code&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;TSource&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;, &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;TKey&lt;/span&gt;&lt;/code&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;()&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; and &lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;ToList&lt;/span&gt;&lt;/code&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&lt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;T&lt;/span&gt;&lt;/code&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt;()&lt;/span&gt;&lt;/code&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; to capture the results in a  strongly typed container which would not reflect new changes made to the  original collection. Here is an example:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table class="MsoTableGrid" style="border: medium none; background: none repeat scroll 0% 0% silver; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="590"&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;pre style="text-align: justify;"&gt;&lt;span class="code-keyword"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt; &lt;span class="code-keyword"&gt;static&lt;/span&gt; &lt;span class="code-keyword"&gt;void&lt;/span&gt; DifferedAndImmediateExecution()&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;    &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span class="code-keyword"&gt;int&lt;/span&gt;[] numbers = { &lt;span class="code-digit"&gt;1&lt;/span&gt;,&lt;span&gt;  &lt;/span&gt;&lt;span class="code-digit"&gt;2&lt;/span&gt;,&lt;span&gt;  &lt;/span&gt;&lt;span class="code-digit"&gt;3&lt;/span&gt;,&lt;span&gt;  &lt;/span&gt;&lt;span class="code-digit"&gt;4&lt;/span&gt;,&lt;span&gt;  &lt;/span&gt;&lt;span class="code-digit"&gt;5&lt;/span&gt;,&lt;span&gt;  &lt;/span&gt;&lt;span class="code-digit"&gt;6&lt;/span&gt; };&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;var lessthan4 = from n &lt;span class="code-keyword"&gt;in&lt;/span&gt; numbers&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;                        &lt;/span&gt;where n &lt; &lt;span class="code-digit"&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;                        &lt;/span&gt;select n;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;Console.WriteLine(&lt;span class="code-string"&gt;"Original array with items less than 4"&lt;/span&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span class="code-keyword"&gt;foreach&lt;/span&gt; (&lt;span class="code-keyword"&gt;int&lt;/span&gt; n &lt;span class="code-keyword"&gt;in&lt;/span&gt; lessthan4)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;            &lt;/span&gt;Console.WriteLine(&lt;span class="code-string"&gt;"{0} &lt;&gt;, n);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span class="code-comment"&gt;//differed execution&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;numbers[&lt;span class="code-digit"&gt;2&lt;/span&gt;] = &lt;span class="code-digit"&gt;7&lt;/span&gt;;&lt;span class="code-comment"&gt;//assigning new value&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;Console.WriteLine(&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;            &lt;/span&gt;&lt;span class="code-string"&gt;"Results based on differed execution after change number[2] = 7"&lt;/span&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span class="code-keyword"&gt;foreach&lt;/span&gt; (&lt;span class="code-keyword"&gt;int&lt;/span&gt; n &lt;span class="code-keyword"&gt;in&lt;/span&gt; lessthan4)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;            &lt;/span&gt;Console.WriteLine(&lt;span class="code-string"&gt;"{0} &lt;&gt;,&lt;span&gt;  &lt;/span&gt;n);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span class="code-comment"&gt;//immediate execution&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;numbers = &lt;span class="code-keyword"&gt;new&lt;/span&gt; &lt;span class="code-keyword"&gt;int&lt;/span&gt;[] { &lt;span class="code-digit"&gt;1&lt;/span&gt;,&lt;span&gt;  &lt;/span&gt;&lt;span class="code-digit"&gt;2&lt;/span&gt;,&lt;span&gt;  &lt;/span&gt;&lt;span class="code-digit"&gt;3&lt;/span&gt;,&lt;span&gt;  &lt;/span&gt;&lt;span class="code-digit"&gt;4&lt;/span&gt;,&lt;span&gt;  &lt;/span&gt;&lt;span class="code-digit"&gt;5&lt;/span&gt;,&lt;span&gt;  &lt;/span&gt;&lt;span class="code-digit"&gt;6&lt;/span&gt; };&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;var lessthan4immediate = numbers.Where(n =&gt; n &lt; &lt;span class="code-digit"&gt;4&lt;/span&gt;).Select(n =&gt; n).ToArray&lt;int&gt;();&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;numbers[&lt;span class="code-digit"&gt;2&lt;/span&gt;] = &lt;span class="code-digit"&gt;7&lt;/span&gt;;&lt;span class="code-comment"&gt;//assigning new value&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;Console.WriteLine(&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;            &lt;/span&gt;&lt;span class="code-string"&gt;"Results based on immediate execution after change number[2] = 7"&lt;/span&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;&lt;span class="code-keyword"&gt;foreach&lt;/span&gt; (&lt;span class="code-keyword"&gt;int&lt;/span&gt; n &lt;span class="code-keyword"&gt;in&lt;/span&gt; lessthan4immediate)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;            &lt;/span&gt;Console.WriteLine(&lt;span class="code-string"&gt;"{0} &lt;&gt;,&lt;span&gt;  &lt;/span&gt;n);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;    &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt;As you can see that, new changes  are reflected on differed queries whereas new changes are not reflected on  immediate execution because the results are cached in a strongly typed  container. However, the query does not run until you iterate over the  collection. &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt;One of the downsides I have  observed with differed execution is that bugs are harder to trace because  enumerating the query could happen much further down in your code. This is where  the exception would be thrown. However, you may forget that it is the original  query that is the problem. So if differed execution is not the desired behavior  you want, use the non-deferred extension methods like &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt;ToArray&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt;ToList&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt;ToDictionary&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt; or &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt;ToLookup&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt; to force the query to be  executed. Let's see an example for that:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="MsoTableGrid" style="border: medium none; background: none repeat scroll 0% 0% silver; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="590"&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt; &lt;/span&gt;&lt;/p&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;"&gt;public&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt; &lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;static&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt; &lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;void&lt;/span&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt; DelayedExceptions()&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;    &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;string&lt;/span&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;[] blob = {&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;"Resharper"&lt;/span&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;, &lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;"is"&lt;/span&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;, &lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;"great"&lt;/span&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;};&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;IEnumerable&lt;string&gt; sentence = blob.Select(s =&gt; s.Substring(&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;0&lt;/span&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;,&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;5&lt;/span&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;));&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;foreach&lt;/span&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt; (&lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;string&lt;/span&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt; word &lt;/span&gt;&lt;span style="font-family: Verdana;"&gt;in&lt;/span&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt; sentence)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;    &lt;/span&gt;&lt;span&gt;    &lt;/span&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;            &lt;/span&gt;Console.WriteLine(word);&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;        &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;pre style="text-align: justify;"&gt;&lt;span style="font-family: Verdana;" lang="CS"&gt;&lt;span&gt;    &lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt; &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Verdana;" lang="CS"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-7754459818188540461?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/7754459818188540461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=7754459818188540461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/7754459818188540461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/7754459818188540461'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2010/11/linq-execution.html' title='LINQ Execution'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-6678523099320141462</id><published>2010-02-09T01:25:00.000-08:00</published><updated>2010-02-09T01:37:57.099-08:00</updated><title type='text'>How to find Union of two string array in C#</title><content type='html'>Linq Made our life easy.&lt;br /&gt;It is too simple to find Union of two array in c#&lt;br /&gt;Below is the code&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#cc0000;"&gt;string [] array1= new string [] {"JON","JEMIN","MATT"};&lt;br /&gt;string[] array2 = new string[] { "JEMIN", "SUHAS", "MATT" };&lt;br /&gt;array1 = array1.Union(array2).ToArray();&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-6678523099320141462?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/6678523099320141462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=6678523099320141462' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/6678523099320141462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/6678523099320141462'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2010/02/how-to-take-union-of-two-string-array.html' title='How to find Union of two string array in C#'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-3402392148826142533</id><published>2008-12-01T03:20:00.000-08:00</published><updated>2008-12-01T03:39:29.777-08:00</updated><title type='text'>semaphore tell me your value</title><content type='html'>Today in morning I was little bit free from my regular work  hushh..... Those sales force cases.&lt;br /&gt; So I decided to write small utility which will tell me how many messages are present in the queue from another application.&lt;br /&gt;          Queue in this application is synchronized by using semaphore. And any point of time semaphore value Represent message count in the queue. So my thinking was if  I know the name of the semaphore and required Access permission on the semaphore I can easily get the message count. But hey it is not possible to get the Current value of semaphore in .net&lt;br /&gt;            I found this on the forum&lt;br /&gt;&lt;a href="http://www.informit.com/guides/content.aspx?g=dotnet&amp;amp;seqNum=606"&gt;http://www.informit.com/guides/content.aspx?g=dotnet&amp;amp;seqNum=606&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;An finally I have to wrap up my idea…………………………….&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-3402392148826142533?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/3402392148826142533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=3402392148826142533' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/3402392148826142533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/3402392148826142533'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2008/12/semaphore-tell-me-your-value.html' title='semaphore tell me your value'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-22613372862350992</id><published>2008-08-30T02:00:00.000-07:00</published><updated>2008-09-01T09:59:00.087-07:00</updated><title type='text'>Managing Security with the .NET Configuration tool</title><content type='html'>&lt;span style="font-size:130%;color:#000099;"&gt;How to manage security with  NET Configuration tool&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="_Toc150165155"&gt;1 Managing Security with the .NET Configuration tool&lt;/a&gt;&lt;br /&gt;&lt;a name="_Toc150165156"&gt;1.1 On the  Test Machine, Start .NET Framework Configuration Tool&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To run Mscorcfg.msc from the Start menu&lt;br /&gt;On Windows 2000 Professional, click Start&gt;Settings&gt;Control Panel.&gt;Double-click Administrative Tools.&lt;br /&gt;In the Administrative Tools window, double-click Microsoft .NET Framework Configuration.&lt;br /&gt;On Windows XP Professional, click Start&gt;Control Panel&gt;Performance and Maintenance, and click Administrative Tools.&lt;br /&gt;In the Administrative Tools window, double-click Microsoft .NET Framework Configuration.&lt;br /&gt;On Windows 2000 Server or Windows Server 2003 family, click Start&gt;Programs, and point to Administrative Tools. Click Microsoft .NET Framework Configuration.&lt;br /&gt;Note The command to start Mscorcfg.msc appears in the Start menu only if MMC version 1.2 or later is installed on the computer. A compatible version of MMC is included with Windows 2000 and Windows XP. If Windows 98, Windows Me, or Windows NT 4 is running on the computer, you must download and install MMC 1.2 from Microsoft.com.&lt;br /&gt;To run Mscorcfg.msc from the command line&lt;br /&gt;At the command line, type %Systemroot%\Microsoft.NET\Framework\versionNumber\Mscorcfg.msc&lt;br /&gt;The user interface for the tool is displayed.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_tprbJzYjTak/SLwZdlQhSgI/AAAAAAAAABE/zim6UoHBI-M/s1600-h/net+security.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5241092062360717826" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_tprbJzYjTak/SLwZdlQhSgI/AAAAAAAAABE/zim6UoHBI-M/s400/net+security.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt; Click the Runtime Security Policy node of the console tree.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_tprbJzYjTak/SLwZvixbK_I/AAAAAAAAABM/iiroj08nJVA/s1600-h/2.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5241092370931067890" style="CURSOR: hand" height="289" alt="" src="http://4.bp.blogspot.com/_tprbJzYjTak/SLwZvixbK_I/AAAAAAAAABM/iiroj08nJVA/s400/2.JPG" width="400" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Click the Increase Assembly Trust link in the plane on the right.&lt;br /&gt;The tool displays a corresponding wizard. &lt;/p&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_tprbJzYjTak/SLwaPFWb2BI/AAAAAAAAABU/9A7U1JA25h8/s1600-h/3.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5241092912789051410" style="CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_tprbJzYjTak/SLwaPFWb2BI/AAAAAAAAABU/9A7U1JA25h8/s400/3.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;3. Select the option Make changes to this computer and then click the next button&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_tprbJzYjTak/SLwaaVG0F_I/AAAAAAAAABc/IcLnbczjdHo/s1600-h/4.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5241093105997060082" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_tprbJzYjTak/SLwaaVG0F_I/AAAAAAAAABc/IcLnbczjdHo/s400/4.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;4. Select the network path where the your exe is available.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_tprbJzYjTak/SLwbsPscPXI/AAAAAAAAABk/yXDDq3dbnBw/s1600-h/5.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5241094513293540722" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_tprbJzYjTak/SLwbsPscPXI/AAAAAAAAABk/yXDDq3dbnBw/s400/5.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Click the next button which will show the following window.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_tprbJzYjTak/SLwb_X7fYQI/AAAAAAAAABs/1Zob60o9fxM/s1600-h/6.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5241094841921659138" style="CURSOR: hand" alt="" src="http://3.bp.blogspot.com/_tprbJzYjTak/SLwb_X7fYQI/AAAAAAAAABs/1Zob60o9fxM/s400/6.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;6. Adjust the scrollbar setting to Full trust position.&lt;br /&gt;7. Click the next button.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_tprbJzYjTak/SLwdJPbWQLI/AAAAAAAAAB0/NPf_tU4L5e0/s1600-h/8.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5241096110949679282" style="CURSOR: hand" alt="" src="http://1.bp.blogspot.com/_tprbJzYjTak/SLwdJPbWQLI/AAAAAAAAAB0/NPf_tU4L5e0/s400/8.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;8. Click the finish button. &lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-22613372862350992?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/22613372862350992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=22613372862350992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/22613372862350992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/22613372862350992'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2008/08/managing-security-with-net.html' title='Managing Security with the .NET Configuration tool'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tprbJzYjTak/SLwZdlQhSgI/AAAAAAAAABE/zim6UoHBI-M/s72-c/net+security.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-6301948134694142457</id><published>2008-08-11T00:51:00.000-07:00</published><updated>2008-08-18T08:12:31.175-07:00</updated><title type='text'>India's First individual Gold Medal in Olympics</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_tprbJzYjTak/SJ_v9RibGWI/AAAAAAAAAA0/WQixVH_zUO0/s1600-h/abhinav.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5233165127986649442" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_tprbJzYjTak/SJ_v9RibGWI/AAAAAAAAAA0/WQixVH_zUO0/s400/abhinav.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Wow !!! Abhinav Bindra of India has won India its first Gold medal for 10 Meter Air Rifle.what a great moment for India .&lt;br /&gt;This is the first individual Gold medal for India in Olympics. Abhinav you make us proud .&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/_tprbJzYjTak/SJ_whyVGzkI/AAAAAAAAAA8/bmteHZGO8bI/s1600-h/bindra_gold_z.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;He score of (596+140.5) 700.5 &lt;/div&gt;&lt;div&gt;In ten rounds, Bindra shot 10.7, 10.3, 10.4, 10.5, 10.5, 10.5, 10.6, 10.0, 10.2, 10.8 to clinch the first berth. China's Qinan Zhu won silver while Finland's Henri Hakkinen won bronze.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-6301948134694142457?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/6301948134694142457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=6301948134694142457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/6301948134694142457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/6301948134694142457'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2008/08/indias-first-individual-gold-medal-in.html' title='India&apos;s First individual Gold Medal in Olympics'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_tprbJzYjTak/SJ_v9RibGWI/AAAAAAAAAA0/WQixVH_zUO0/s72-c/abhinav.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-4777830869621854073</id><published>2008-07-20T02:58:00.000-07:00</published><updated>2010-11-10T01:35:23.593-08:00</updated><title type='text'>How to detect browser close event in IE7</title><content type='html'>How to detect browser close event&lt;br /&gt;I have written a code to detect the bowser close event in IE6 which looks like&lt;br /&gt;&lt;a href="http://bp0.blogger.com/_tprbJzYjTak/SIMS4lsVJyI/AAAAAAAAAAc/2pHPOuBypf4/s1600-h/1.PNG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5225040756079929122" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://bp0.blogger.com/_tprbJzYjTak/SIMS4lsVJyI/AAAAAAAAAAc/2pHPOuBypf4/s400/1.PNG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This works well with IE6. Unfortunately,  IE7 browser returns positive clientX value even if mouse pointer is out of client area.This means that the trick which I used in IE6 case will not work  on IE7.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I searched solution for this problem on net but I didn't find any perfect solution. &lt;br /&gt;So I tried myself to find out the solution. In the below sample code I tried to go closer to the  solution of problem and tried to cover maximum number of condition such as atr+X ,Popup window ,mouse click on close button etc.&lt;br /&gt;&lt;br /&gt;There is no “universal way” to determine if the browser has been closed. You can only determine if a browser window (web page) has been closed or navigated away from, provided you understand that the events illustrated below are generated not only when a user triggers the closing of a window, but the same events fire on a “refresh” too. So this fact probably defeats your purpose. Using the methodologies described, you can’t tell if the user clicked the “Red X” or the “Refresh” button, let alone the browser’s top right “X” or “File-&gt;Exit” menu item.&lt;br /&gt;&lt;br /&gt;Note:&lt;span style="color:#66cccc;"&gt;Please replace "replace" keyword in the below code with "script"keyword &lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span &gt;&lt;code&gt;&lt;[[CDATA[&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;code&gt;&lt;br /&gt;&lt;replace type="text/javareplace"&gt;&lt;br /&gt;&lt;span &gt;var alterffourflag=0;&lt;br /&gt;var lastkey=0;&lt;br /&gt;var refreshflag=0;&lt;br /&gt;document.onkeydown = function ( event )&lt;br /&gt;{&lt;br /&gt;event = event window.event;&lt;br /&gt;return window_onkeydown();&lt;br /&gt;}&lt;br /&gt;&lt;/replace&gt;&lt;br /&gt;&lt;replace for="window" event="onunload"&gt;&lt;br /&gt;ie7=navigator.userAgent.toLowerCase().indexOf('msie 7')!=-1;&lt;br /&gt;if(ie7==1)&lt;br /&gt;{&lt;br /&gt;if(window.document.referrer.toString()=="")//to detect popup window in the IE7&lt;br /&gt;{&lt;br /&gt;return;&lt;br /&gt;}&lt;br /&gt;var offset=0.0;&lt;br /&gt;var width=0.0;&lt;br /&gt;if( document.documentElement &amp;amp;&amp;amp; ( document.documentElement.clientWidth ))&lt;br /&gt;{&lt;br /&gt;//IE 6+ in 'standards compliant mode'&lt;br /&gt;width = document.documentElement.clientWidth;&lt;br /&gt;}&lt;br /&gt;else if( document.body &amp;amp;&amp;amp; ( document.body.offsetWidth))&lt;br /&gt;{&lt;br /&gt;width=document.body.offsetWidth;&lt;br /&gt;}&lt;br /&gt;offset=18500/screen.width;&lt;br /&gt;var diff =width-offset;&lt;br /&gt;if (refreshflag!=1 &amp;amp;&amp;amp; width!=0 &amp;amp;&amp;amp; window.event.clientY &lt;&gt; (width - offset))alterffourflag==1)&lt;br /&gt;{&lt;br /&gt;if( window.opener == null)&lt;br /&gt;{&lt;br /&gt;if (window.XMLHttpRequest)&lt;br /&gt;{&lt;br /&gt;req=new XMLHttpRequest();&lt;br /&gt;req.open("GET", "../ping.aspx" + "?t=" + new Date(), false);//page which removes session information&lt;br /&gt;req.send(null);&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;if (window.ActiveXObject)&lt;br /&gt;{&lt;br /&gt;req = new ActiveXObject("Microsoft.XMLHTTP");&lt;br /&gt;req.open("GET", "../ping.aspx" + "?t=" + new Date(), false);&lt;br /&gt;req.send(null);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;refreshflag=0;&lt;br /&gt;}&lt;br /&gt;else// IE6&lt;br /&gt;{&lt;br /&gt;if (self.screenTop &gt; 10000 &amp;amp;&amp;amp; event.clientY &lt; opener ="=" req="new" t=" + new Date(), false); req.send(null); } else { if (window.ActiveXObject) { req = new ActiveXObject(" t=""&gt;&lt;br /&gt;&lt;replace language="javareplace" type="text/javareplace"&gt;&lt;br /&gt;function window_onkeydown()&lt;br /&gt;{&lt;br /&gt;var keynum&lt;br /&gt;var numcheck&lt;br /&gt;e=window.event;&lt;br /&gt;keynum = e.keyCode;&lt;br /&gt;if(lastkey==18 &amp;amp;&amp;amp; keynum==115)//(lastkey==17 &amp;amp;&amp;amp; keynum==87))&lt;br /&gt;{&lt;br /&gt;alterffourflag=1;&lt;br /&gt;}&lt;br /&gt;if(keynum==116)&lt;br /&gt;{&lt;br /&gt;refreshflag=1;&lt;br /&gt;}&lt;br /&gt;lastkey=keynum;&lt;br /&gt;}&lt;br /&gt;&lt;/replace&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span &gt;]]&gt;&lt;/span&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-4777830869621854073?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/4777830869621854073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=4777830869621854073' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/4777830869621854073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/4777830869621854073'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2008/07/i-have-written-code-to-detect-bowser.html' title='How to detect browser close event in IE7'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_tprbJzYjTak/SIMS4lsVJyI/AAAAAAAAAAc/2pHPOuBypf4/s72-c/1.PNG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4939955058371387078.post-3759362222491785153</id><published>2008-07-09T06:04:00.000-07:00</published><updated>2008-07-09T06:29:55.969-07:00</updated><title type='text'>Problem while loading the Assembly In web application</title><content type='html'>Yesterday I came across a below problem  in my web application. After lots of search on google I couldn't figure out the reason .After some investigation I found that  this problem appeared after machine poweroff because of power cut .&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;After reinstalling my .net framework version below problem get resolved .&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Could not load file or assembly 'myinterface or one of its dependecies .The Parameter is incorrect (Exception From HRresult : 0x80070057(E_INVALIDARG))&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Could not load file or assembly 'myinterface, Version=4.0.0.9185, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Access is denied. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.IO.FileLoadException: Could not load file or assembly 'myinterface, Version=4.0.0.9185, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Access is denied.Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  Assembly Load Trace: The following information can be helpful to determine why the assembly 'myinterface, Version=4.0.0.9185, Culture=neutral, PublicKeyToken=null' could not be loaded.WRN: Assembly binding logging is turned OFF.To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.Note: There is some performance penalty associated with assembly bind failure logging.To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].Stack Trace: [FileLoadException: Could not load file or assembly 'myinterface, Version=4.0.0.9185, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Access is denied.]   mYWebsite..LOGINPage_Load(Object sender, EventArgs e) +0   System.Web.UI.Control.OnLoad(EventArgs e) +99   System.Web.UI.Control.LoadRecursive() +47   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061--------------------------------------------------------------------------------Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42 --------------------------------------------------&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4939955058371387078-3759362222491785153?l=ginkostyle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ginkostyle.blogspot.com/feeds/3759362222491785153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4939955058371387078&amp;postID=3759362222491785153' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/3759362222491785153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4939955058371387078/posts/default/3759362222491785153'/><link rel='alternate' type='text/html' href='http://ginkostyle.blogspot.com/2008/07/problem-while-loading-assembly-in-web.html' title='Problem while loading the Assembly In web application'/><author><name>Sachin</name><uri>http://www.blogger.com/profile/12640694318674386505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_tprbJzYjTak/SpkcHIcNN0I/AAAAAAAAAFw/EYib3freBsA/S220/IMG_0246.jpg'/></author><thr:total>1</thr:total></entry></feed>
