<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>LINQ</title>
        <link>http://nimblecoder.com/blog/category/22.aspx</link>
        <description>Language INtegrated Query</description>
        <language>en-US</language>
        <copyright>Ryan Van Slooten</copyright>
        <generator>Subtext Version 2.1.1.1</generator>
        <item>
            <title>On Sample Simplicity</title>
            <link>http://nimblecoder.com/blog/archive/2008/06/13/on-sample-simplicity.aspx</link>
            <description>&lt;p&gt;I was working through a Communications sample of connecting &lt;a href="http://silverlight.net/" target="_blank"&gt;SilverLight&lt;/a&gt; to &lt;a href="http://en.wikipedia.org/wiki/Plain_Old_XML" target="_blank"&gt;POX&lt;/a&gt;, then &lt;a href="http://en.wikipedia.org/wiki/Web_services" target="_blank"&gt;Web Services&lt;/a&gt;, and finally &lt;a href="http://msdn.microsoft.com/en-us/library/ms735119.aspx" target="_blank"&gt;WCF&lt;/a&gt; and I came across the following instructions:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;(Part 1: POX) The Generic handler will process an incoming request using the code declared in the &lt;em&gt;ProcessRequest&lt;/em&gt; function. This function should create some new instances of CityData and add them to the myCities list. Here are some examples of cities with longitude and latitude { (London, 51.5, 0), (Stratford-upon-Avon, 52.3, -1.71), (Edinburgh, 55.95, -3.16) }. See if you can write the code to do this.&lt;/p&gt; &lt;p&gt;(And later in the lab...)&lt;/p&gt; &lt;p&gt;In this example your ASHX served up hard-coded data for 1 city. Can you build it so that it can accept parameters on the URI string (i.e. http://localhost:8001/Sample1Web/GetData.ashx?city=whatever)?&lt;/p&gt; &lt;p&gt;(And even further in the lab...)&lt;/p&gt; &lt;p&gt;Write a function that takes in a country and builds a List&amp;lt;CityData&amp;gt; of several cities for that country. Here are some cities and their latitudes and longitudes:&lt;/p&gt;&lt;pre class="code"&gt;(&lt;span style="background: #ffffe6"&gt;"Paris"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;48.87&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;2.33&lt;/span&gt;);
(&lt;span style="background: #ffffe6"&gt;"Lourdes"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;43.1&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;0.05&lt;/span&gt;);
(&lt;span style="background: #ffffe6"&gt;"Toulouse"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;43.6&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;1.38&lt;/span&gt;);
(&lt;span style="background: #ffffe6"&gt;"London"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;51.5&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;0&lt;/span&gt;);
(&lt;span style="background: #ffffe6"&gt;"Stratford-Upon-Avon"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;52.3&lt;/span&gt;, -&lt;span style="background: #e6ffff"&gt;1.71&lt;/span&gt;);
(&lt;span style="background: #ffffe6"&gt;"Edinburgh"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;55.95&lt;/span&gt;, -&lt;span style="background: #e6ffff"&gt;3.16&lt;/span&gt;);
(&lt;span style="background: #ffffe6"&gt;"Berlin"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;52.52&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;13.42&lt;/span&gt;);
(&lt;span style="background: #ffffe6"&gt;"Munich"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;48.13&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;11.57&lt;/span&gt;);
(&lt;span style="background: #ffffe6"&gt;"Hamburg"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;53.58&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;9.98&lt;/span&gt;);&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;
&lt;h3&gt;Provided Solution&lt;/h3&gt;
&lt;p&gt;The sample provided "solution" code at the end of the instructions. The code is basic and unimaginative, but perhaps that is all the is needed of sample code (I would offer that samples are the perfect to push the boundaries -- lead by example).&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: green"&gt;// File: CityData.cs
&lt;/span&gt;&lt;span style="color: navy"&gt;public class &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData
&lt;/span&gt;{
    &lt;span style="color: navy"&gt;public string &lt;/span&gt;&lt;span style="color: maroon"&gt;CityName &lt;/span&gt;{ &lt;span style="color: navy"&gt;get&lt;/span&gt;; &lt;span style="color: navy"&gt;set&lt;/span&gt;; }
    &lt;span style="color: navy"&gt;public double &lt;/span&gt;&lt;span style="color: maroon"&gt;Latitude &lt;/span&gt;{ &lt;span style="color: navy"&gt;get&lt;/span&gt;; &lt;span style="color: navy"&gt;set&lt;/span&gt;; }
    &lt;span style="color: navy"&gt;public double &lt;/span&gt;&lt;span style="color: maroon"&gt;Longitude &lt;/span&gt;{ &lt;span style="color: navy"&gt;get&lt;/span&gt;; &lt;span style="color: navy"&gt;set&lt;/span&gt;; }

    &lt;span style="color: navy"&gt;public &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="color: navy"&gt;string &lt;/span&gt;&lt;span style="color: maroon"&gt;strCityName&lt;/span&gt;, &lt;span style="color: navy"&gt;double &lt;/span&gt;&lt;span style="color: maroon"&gt;nLatitude&lt;/span&gt;, &lt;span style="color: navy"&gt;double &lt;/span&gt;&lt;span style="color: maroon"&gt;nLongitude&lt;/span&gt;)
    {
        &lt;span style="color: maroon"&gt;CityName &lt;/span&gt;= &lt;span style="color: maroon"&gt;strCityName&lt;/span&gt;;
        &lt;span style="color: maroon"&gt;Latitude &lt;/span&gt;= &lt;span style="color: maroon"&gt;nLatitude&lt;/span&gt;;
        &lt;span style="color: maroon"&gt;Longitude &lt;/span&gt;= &lt;span style="color: maroon"&gt;nLongitude&lt;/span&gt;;
    }

    &lt;span style="color: navy"&gt;public &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;()
    {
    }
}

&lt;span style="color: green"&gt;// File: GetData.ashx
&lt;/span&gt;&lt;span style="color: navy"&gt;public class &lt;/span&gt;&lt;span style="color: maroon"&gt;GetData &lt;/span&gt;: &lt;span style="color: maroon"&gt;IHttpHandler
&lt;/span&gt;{
    &lt;span style="color: navy"&gt;private &lt;/span&gt;&lt;span style="color: maroon"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt; &lt;span style="color: maroon"&gt;getCities&lt;/span&gt;(&lt;span style="color: navy"&gt;string &lt;/span&gt;&lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;)
    {
        &lt;span style="color: maroon"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt; &lt;span style="color: maroon"&gt;ret &lt;/span&gt;= &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt;();

        &lt;span style="color: navy"&gt;switch &lt;/span&gt;(&lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;)
        {
        &lt;span style="color: navy"&gt;case &lt;/span&gt;&lt;span style="background: #ffffe6"&gt;"france"&lt;/span&gt;:
            &lt;span style="color: maroon"&gt;ret&lt;/span&gt;.&lt;span style="color: maroon"&gt;Add&lt;/span&gt;(&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Paris"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;48.87&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;2.33&lt;/span&gt;));
            &lt;span style="color: maroon"&gt;ret&lt;/span&gt;.&lt;span style="color: maroon"&gt;Add&lt;/span&gt;(&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Lourdes"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;43.1&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;0.05&lt;/span&gt;));
            &lt;span style="color: maroon"&gt;ret&lt;/span&gt;.&lt;span style="color: maroon"&gt;Add&lt;/span&gt;(&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Toulouse"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;43.6&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;1.38&lt;/span&gt;));
            &lt;span style="color: navy"&gt;break&lt;/span&gt;;

        &lt;span style="color: navy"&gt;case &lt;/span&gt;&lt;span style="background: #ffffe6"&gt;"uk"&lt;/span&gt;:
            &lt;span style="color: maroon"&gt;ret&lt;/span&gt;.&lt;span style="color: maroon"&gt;Add&lt;/span&gt;(&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"London"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;51.5&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;0&lt;/span&gt;));
            &lt;span style="color: maroon"&gt;ret&lt;/span&gt;.&lt;span style="color: maroon"&gt;Add&lt;/span&gt;(&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Stratford-Upon-Avon"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;52.3&lt;/span&gt;, -&lt;span style="background: #e6ffff"&gt;1.71&lt;/span&gt;));
            &lt;span style="color: maroon"&gt;ret&lt;/span&gt;.&lt;span style="color: maroon"&gt;Add&lt;/span&gt;(&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Edinburgh"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;55.95&lt;/span&gt;, -&lt;span style="background: #e6ffff"&gt;3.16&lt;/span&gt;));
            &lt;span style="color: navy"&gt;break&lt;/span&gt;;

        &lt;span style="color: navy"&gt;case &lt;/span&gt;&lt;span style="background: #ffffe6"&gt;"germany"&lt;/span&gt;:
            &lt;span style="color: maroon"&gt;ret&lt;/span&gt;.&lt;span style="color: maroon"&gt;Add&lt;/span&gt;(&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Berlin"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;52.52&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;13.42&lt;/span&gt;));
            &lt;span style="color: maroon"&gt;ret&lt;/span&gt;.&lt;span style="color: maroon"&gt;Add&lt;/span&gt;(&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Munich"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;48.13&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;11.57&lt;/span&gt;));
            &lt;span style="color: maroon"&gt;ret&lt;/span&gt;.&lt;span style="color: maroon"&gt;Add&lt;/span&gt;(&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Hamburg"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;53.58&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;9.98&lt;/span&gt;));
            &lt;span style="color: navy"&gt;break&lt;/span&gt;;

        &lt;span style="color: navy"&gt;default&lt;/span&gt;:
            &lt;span style="color: maroon"&gt;ret&lt;/span&gt;.&lt;span style="color: maroon"&gt;Add&lt;/span&gt;(&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"London"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;51.5&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;0&lt;/span&gt;));
            &lt;span style="color: maroon"&gt;ret&lt;/span&gt;.&lt;span style="color: maroon"&gt;Add&lt;/span&gt;(&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Stratford-Upon-Avon"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;52.3&lt;/span&gt;, -&lt;span style="background: #e6ffff"&gt;1.71&lt;/span&gt;));
            &lt;span style="color: maroon"&gt;ret&lt;/span&gt;.&lt;span style="color: maroon"&gt;Add&lt;/span&gt;(&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Edinburgh"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;55.95&lt;/span&gt;, -&lt;span style="background: #e6ffff"&gt;3.16&lt;/span&gt;));
            &lt;span style="color: navy"&gt;break&lt;/span&gt;;
        }
        &lt;span style="color: navy"&gt;return &lt;/span&gt;&lt;span style="color: maroon"&gt;ret&lt;/span&gt;;
    }
}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;h3&gt;Alternative 1&lt;/h3&gt;
&lt;p&gt;I wanted to explore alternatives to the supplied code, so I decided to initialize the CityData list with the data instead of using "Add". In C++ this was more efficient (it set the initial list size instead of using the default capacity sizing algorithm among other things), but I'm not sure of performance in terms of C#. I would not expect any significant performance difference with this small sample though.&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: navy"&gt;public &lt;/span&gt;&lt;span style="color: maroon"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt; &lt;span style="color: maroon"&gt;getCities&lt;/span&gt;(&lt;span style="color: navy"&gt;string &lt;/span&gt;&lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;)
{
    &lt;span style="color: maroon"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt; &lt;span style="color: maroon"&gt;ret &lt;/span&gt;= &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt;();

    &lt;span style="color: navy"&gt;switch &lt;/span&gt;( &lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;.&lt;span style="color: maroon"&gt;ToLower&lt;/span&gt;() )
    {
        &lt;span style="color: navy"&gt;case &lt;/span&gt;&lt;span style="background: #ffffe6"&gt;"france"&lt;/span&gt;:
            &lt;span style="color: maroon"&gt;ret &lt;/span&gt;= &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt;() {
                &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Paris"&lt;/span&gt;, &lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;48.87&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;2.33&lt;/span&gt;),
                &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Lourdes"&lt;/span&gt;, &lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;43.1&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;0.05&lt;/span&gt;),
                &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Toulouse"&lt;/span&gt;, &lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;43.6&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;1.38&lt;/span&gt;)
            };
            &lt;span style="color: navy"&gt;break&lt;/span&gt;;

        &lt;span style="color: navy"&gt;case &lt;/span&gt;&lt;span style="background: #ffffe6"&gt;"germany"&lt;/span&gt;:
            &lt;span style="color: maroon"&gt;ret &lt;/span&gt;= &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt;() {
                &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Berlin"&lt;/span&gt;, &lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;52.52&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;13.42&lt;/span&gt;),
                &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Munich"&lt;/span&gt;, &lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;48.13&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;11.57&lt;/span&gt;),
                &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Hamburg"&lt;/span&gt;, &lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;53.58&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;9.98&lt;/span&gt;)
            };
            &lt;span style="color: navy"&gt;break&lt;/span&gt;;

        &lt;span style="color: navy"&gt;case &lt;/span&gt;&lt;span style="background: #ffffe6"&gt;"uk"&lt;/span&gt;:
        &lt;span style="color: navy"&gt;default&lt;/span&gt;:
            &lt;span style="color: maroon"&gt;strCountry &lt;/span&gt;= &lt;span style="background: #ffffe6"&gt;"UK"&lt;/span&gt;;
            &lt;span style="color: maroon"&gt;ret &lt;/span&gt;= &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt;() {
                &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"London"&lt;/span&gt;, &lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;51.5&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;0&lt;/span&gt;),
                &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Stratford-Upon-Avon"&lt;/span&gt;, &lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;52.3&lt;/span&gt;, -&lt;span style="background: #e6ffff"&gt;1.71&lt;/span&gt;),
                &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Edinburgh"&lt;/span&gt;, &lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;55.95&lt;/span&gt;, -&lt;span style="background: #e6ffff"&gt;3.16&lt;/span&gt;)
            };
            &lt;span style="color: navy"&gt;break&lt;/span&gt;;
    }
    &lt;span style="color: navy"&gt;return &lt;/span&gt;&lt;span style="color: maroon"&gt;ret&lt;/span&gt;;
}
&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;h3&gt;Alternative 2&lt;/h3&gt;
&lt;p&gt;I haven't worked very much with LINQ, so I wanted to compare the same functionality using LINQ. I added a string "Country" to the CityData class and here is the result:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: navy"&gt;private static &lt;/span&gt;&lt;span style="color: #a65300"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt; &lt;span style="color: maroon"&gt;cityList &lt;/span&gt;= &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: #a65300"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt;()
{
    &lt;span style="color: green"&gt;// UK
    &lt;/span&gt;&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Paris"&lt;/span&gt;, &lt;span style="background: #ffffe6"&gt;"UK"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;48.87&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;2.33&lt;/span&gt;),
    &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Lourdes"&lt;/span&gt;, &lt;span style="background: #ffffe6"&gt;"UK"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;43.1&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;0.05&lt;/span&gt;),
    &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Toulouse"&lt;/span&gt;, &lt;span style="background: #ffffe6"&gt;"UK"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;43.6&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;1.38&lt;/span&gt;),

    &lt;span style="color: green"&gt;// France
    &lt;/span&gt;&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Paris"&lt;/span&gt;, &lt;span style="background: #ffffe6"&gt;"France"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;48.87&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;2.33&lt;/span&gt;),
    &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Lourdes"&lt;/span&gt;, &lt;span style="background: #ffffe6"&gt;"France"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;43.1&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;0.05&lt;/span&gt;),
    &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Toulouse"&lt;/span&gt;, &lt;span style="background: #ffffe6"&gt;"France"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;43.6&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;1.38&lt;/span&gt;),

    &lt;span style="color: green"&gt;// Germany
    &lt;/span&gt;&lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Berlin"&lt;/span&gt;, &lt;span style="background: #ffffe6"&gt;"Germany"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;52.52&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;13.42&lt;/span&gt;),
    &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Munich"&lt;/span&gt;, &lt;span style="background: #ffffe6"&gt;"Germany"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;48.13&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;11.57&lt;/span&gt;),
    &lt;span style="color: navy"&gt;new &lt;/span&gt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;(&lt;span style="background: #ffffe6"&gt;"Hamburg"&lt;/span&gt;, &lt;span style="background: #ffffe6"&gt;"Germany"&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;53.58&lt;/span&gt;, &lt;span style="background: #e6ffff"&gt;9.98&lt;/span&gt;)
};

&lt;span style="color: navy"&gt;public &lt;/span&gt;&lt;span style="color: maroon"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt; &lt;span style="color: maroon"&gt;getCities&lt;/span&gt;(&lt;span style="color: navy"&gt;string &lt;/span&gt;&lt;span style="color: maroon"&gt;strCountry&lt;/span&gt;)
{
    &lt;span style="color: maroon"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt; &lt;span style="color: maroon"&gt;data &lt;/span&gt;= &lt;span style="color: maroon"&gt;from city &lt;/span&gt;&lt;span style="color: navy"&gt;in &lt;/span&gt;&lt;span style="color: maroon"&gt;cityList
                                 where city&lt;/span&gt;.&lt;span style="color: maroon"&gt;Country &lt;/span&gt;== &lt;span style="color: maroon"&gt;strCountry
                                 select city&lt;/span&gt;;
    &lt;span style="color: navy"&gt;return new &lt;/span&gt;&lt;span style="color: maroon"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color: maroon"&gt;CityData&lt;/span&gt;&amp;gt;(&lt;span style="color: maroon"&gt;data&lt;/span&gt;);
}
&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;This is still not the most efficient or optimal method, but I think it looks nice and is helps introduce LINQ in an understandable manner.&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Samples and labs should be simple and yet it is a perfect time to include new technologies and push the boundaries so to speak. One thing I certainly don't want to see in samples are basic programming inefficiencies (things that make you cringe) due to lack of effort by the sample creator. That was not necessarily the case with this sample, but it would have been better to present alternatives such as the examples I listed.&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:673666a2-582b-4be1-983b-acae922063a9" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/C#" rel="tag"&gt;C#&lt;/a&gt;, &lt;a href="http://technorati.com/tags/LINQ" rel="tag"&gt;LINQ&lt;/a&gt;&lt;/div&gt;&lt;img src="http://nimblecoder.com/blog/aggbug/69.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ryan Van Slooten</dc:creator>
            <guid>http://nimblecoder.com/blog/archive/2008/06/13/on-sample-simplicity.aspx</guid>
            <pubDate>Fri, 13 Jun 2008 21:08:44 GMT</pubDate>
            <wfw:comment>http://nimblecoder.com/blog/comments/69.aspx</wfw:comment>
            <comments>http://nimblecoder.com/blog/archive/2008/06/13/on-sample-simplicity.aspx#feedback</comments>
            <wfw:commentRss>http://nimblecoder.com/blog/comments/commentRss/69.aspx</wfw:commentRss>
            <trackback:ping>http://nimblecoder.com/blog/services/trackbacks/69.aspx</trackback:ping>
        </item>
    </channel>
</rss>