<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>THE .NET WAY &#187; LINQ</title>
	<atom:link href="http://www.thedotnetway.net/tag/linq/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thedotnetway.net</link>
	<description>El blog Tecnológico de Emilio Torrens y Jordi Cladera</description>
	<lastBuildDate>Thu, 29 Jul 2010 08:27:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Trabajar con Listas (Skip, Take y OrderBy)</title>
		<link>http://www.thedotnetway.net/2010/06/30/trabajar-con-listas-skip-take-y-orderby/</link>
		<comments>http://www.thedotnetway.net/2010/06/30/trabajar-con-listas-skip-take-y-orderby/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 11:00:15 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Trucos]]></category>

		<guid isPermaLink="false">http://www.thedotnetway.net/2010/06/30/trabajar-con-listas-skip-take-y-orderby/</guid>
		<description><![CDATA[Un poco de código para trabajar con listas. &#160; El otro día nos llegaba, en una lista de int, las edades de los paxes y querían que ordenáramos las de los niños de menor a mayor, de eso se puede sacar un ejemplo de uso de Take y Skip, G1 seria el numero de Adultos [...]]]></description>
			<content:encoded><![CDATA[<div id="codeSnippetWrapper"> Un poco de código para trabajar con listas.</div>
<div>&#160;</div>
<div>El otro día nos llegaba, en una lista de int, las edades de los paxes y querían que ordenáramos las de los niños de menor a mayor, de eso se puede sacar un ejemplo de uso de Take y Skip, G1 seria el numero de Adultos en la lista, G2 niños y G3 Bebes.</div>
<div>&#160;</div>
<div>
<div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #0000ff">int</span> G1 = 2;</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #0000ff">int</span> G2 = 3;</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #0000ff">int</span> G3 = 1;</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">List&lt;<span style="color: #0000ff">int</span>&gt; Valores = <span style="color: #0000ff">new</span> List&lt;<span style="color: #0000ff">int</span>&gt;() { 35, 25, 9, 4, 5, 0 };</pre>
<p><!--CRLF--><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">//Cogemos los valores del segundo Grupo, los ordenamos y los metemos en </span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">//una nueva lista</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">List&lt;<span style="color: #0000ff">int</span>&gt; ValoresG2 = Valores.Skip(G1).Take(G2).OrderBy(c =&gt; c).ToList();</pre>
<p><!--CRLF--><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">//Creamos la lista resultado con los valores del Grupo 1, los del Grupo 2 </span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">//Ordenado y el Grupo 3</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">List&lt;<span style="color: #0000ff">int</span>&gt; result = <span style="color: #0000ff">new</span> List&lt;<span style="color: #0000ff">int</span>&gt;();</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">result.AddRange(Valores.Take(G1));</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">result.AddRange(ValoresG2);</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">result.AddRange(Valores.Skip(G1 + G2));</pre>
<p><!--CRLF--></div>
</div>
<div>Ya se que se puede hacer en menos líneas, pero es un ejemplo !!!!! <img src='http://www.thedotnetway.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.thedotnetway.net/2010/06/30/trabajar-con-listas-skip-take-y-orderby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance en LINQ 2 Objects</title>
		<link>http://www.thedotnetway.net/2009/06/25/performance-en-linq-2-objects/</link>
		<comments>http://www.thedotnetway.net/2009/06/25/performance-en-linq-2-objects/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 14:48:11 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Trucos]]></category>

		<guid isPermaLink="false">http://www.thedotnetway.net/2009/06/25/performance-en-linq-2-objects/</guid>
		<description><![CDATA[Estaba comprobando el performance de una aplicación con ANTS Profiler y me he dado cuenta que tienes que ir con mucho ojito cuando trabajas con los resultados de una sentencia LINQ, en el código que os pego reglaCol es el resultado de una sentencia LINQ a Objetos: Podéis ver que se ejecuta dos veces, una [...]]]></description>
			<content:encoded><![CDATA[<p>Estaba comprobando el performance de una aplicación con <a href="http://www.red-gate.com/products/ants_performance_profiler/index.htm" target="_blank">ANTS Profiler</a> y me he dado cuenta que tienes que ir con mucho ojito cuando trabajas con los resultados de una sentencia LINQ, en el código que os pego reglaCol es el resultado de una sentencia LINQ a Objetos:</p>
<p>Podéis ver que se ejecuta dos veces, una vez cuando la uso en el foreach:</p>
<p><a href="http://www.thedotnetway.net/wp-content/uploads/2009/06/image1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.thedotnetway.net/wp-content/uploads/2009/06/image_thumb.png" width="510" height="87" /></a> </p>
<p>y otra cuando la copia a una Lista:</p>
<p><a href="http://www.thedotnetway.net/wp-content/uploads/2009/06/image2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.thedotnetway.net/wp-content/uploads/2009/06/image_thumb1.png" width="513" height="38" /></a> </p>
</p>
<p>Hasta ahora yo creía que la segunda vez que accedías no se ejecutaba si no que tenia la información en algún cache, pero se ve que no, así que copiándola a la lista antes del foreach y usando la lista en el foreach hay una mejora importante de rendimiento sin hacer prácticamente nada.</p>
<p>Si esto no es así que alguien me corrija pls, porque me he quedado a cuadros …</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thedotnetway.net/2009/06/25/performance-en-linq-2-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eliminar repetidos con IEqualityComparer</title>
		<link>http://www.thedotnetway.net/2009/06/19/eliminar-repetidos-con-iequalitycomparer/</link>
		<comments>http://www.thedotnetway.net/2009/06/19/eliminar-repetidos-con-iequalitycomparer/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 11:37:46 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Trucos]]></category>

		<guid isPermaLink="false">http://www.thedotnetway.net/2009/06/19/eliminar-repetidos-con-iequalitycomparer/</guid>
		<description><![CDATA[Estaba escribiendo un POST sobre usar IEqualityComparer para eliminar los objetos repetidos de una colección sin demasiado código, pero no funciona !!! Hemos estado probándolo en un código aquí en el trabajo y eso no va, o no hace lo que esperabamos Al final la manera que hemos usando es usando un ExtensionMethod y una [...]]]></description>
			<content:encoded><![CDATA[<p>Estaba escribiendo un POST sobre usar <a href="http://msdn.microsoft.com/es-es/library/system.collections.iequalitycomparer(VS.80).aspx" target="_blank">IEqualityComparer</a> para eliminar los objetos repetidos de una colección sin demasiado código, pero no funciona !!! </p>
<p>Hemos estado probándolo en un código aquí en el trabajo y eso no va, o no hace lo que esperabamos <img src='http://www.thedotnetway.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Al final la manera que hemos usando es usando un ExtensionMethod y una Método de comparación, siguiendo lo que hemos leído en este blog:    <br /><a href="http://blog.jordanterrell.com/post/LINQ-Distinct()-does-not-work-as-expected.aspx">http://blog.jordanterrell.com/post/LINQ-Distinct()-does-not-work-as-expected.aspx</a></p>
<p>La idea es crear la extensión en una clase estática:</p>
<pre class="csharpcode"><span class="kwrd">namespace</span> MyNameSpace
{
    <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">class</span>  ExtensionMethods
    {
        <span class="kwrd">public</span> <span class="kwrd">static</span> IEnumerable&lt;T&gt; RemoveDuplicates&lt;T&gt;
             (<span class="kwrd">this</span> IEnumerable&lt;T&gt; source, Func&lt;T, T, <span class="kwrd">bool</span>&gt; equater)
        {
            List&lt;T&gt; result = <span class="kwrd">new</span> List&lt;T&gt;();

            <span class="kwrd">foreach</span> (T item <span class="kwrd">in</span> source)
            {
                <span class="kwrd">if</span> (result.All(t =&gt; !equater(item, t)))
                {
                    result.Add(item);
                }
            }

            <span class="kwrd">return</span> result;
        }

    }
}</pre>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Esto hará que este método se añada a las colecciones de clases que estén en el mismo espacio de nombres, luego solo hay que crear el método que usaremos para comparar las clases, en mi caso uno que mira si los campos son iguales:</p>
<div>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">bool</span> MyClassEquals(MyClass rec1, MyClass rec2)
{
    Type t = rec1.GetType();
    FieldInfo[] fi = t.GetFields();

    <span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i &lt; fi.Length; i++)
    {
        <span class="kwrd">if</span> (fi[i].GetValue(rec1).ToString() !=
            fi[i].GetValue(rec2).ToString())
            <span class="kwrd">return</span> <span class="kwrd">false</span>;
    }

    <span class="kwrd">return</span> <span class="kwrd">true</span>;
}</pre>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
</div>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<p>Y ya estamos listos para usarlo <img src='http://www.thedotnetway.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="csharpcode"><span class="kwrd">foreach</span> (MyClass c <span class="kwrd">in</span> MyClassList.RemoveDuplicates(MyClassEquals))</pre>
<style type="text/css">
<p>.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
]]></content:encoded>
			<wfw:commentRss>http://www.thedotnetway.net/2009/06/19/eliminar-repetidos-con-iequalitycomparer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ to SQL, orderby y Take</title>
		<link>http://www.thedotnetway.net/2009/05/12/linq-to-sql-orderby-y-take/</link>
		<comments>http://www.thedotnetway.net/2009/05/12/linq-to-sql-orderby-y-take/#comments</comments>
		<pubDate>Tue, 12 May 2009 08:17:40 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[SQLServer]]></category>
		<category><![CDATA[Trucos]]></category>

		<guid isPermaLink="false">http://www.thedotnetway.net/2009/05/12/linq-to-sql-orderby-y-take/</guid>
		<description><![CDATA[Con LINQ 2 SQL y usando Take, es realmente sencillo obtener los últimos o los primeros registros de una Tabla, simplemente tenemos que ordenarla como nos interese con el order by y usar el método Take para indicar cuantos registros queremos. Aquí dejo un ejemplo para coger los últimos registros de una tabla. public List&#60;object&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Con <a href="http://es.wikipedia.org/wiki/Language_Integrated_Query" target="_blank">LINQ 2 SQL</a> y usando <a href="http://msdn.microsoft.com/es-es/library/bb503062(VS.95).aspx" target="_blank">Take</a>, es realmente sencillo obtener los últimos o los primeros registros de una Tabla, simplemente tenemos que ordenarla como nos interese con el <a href="http://msdn.microsoft.com/es-es/library/bb534966(VS.95).aspx" target="_blank">order by</a> y usar el método Take para indicar cuantos registros queremos.</p>
<p>Aquí dejo un ejemplo para coger los últimos registros de una tabla.</p>
</p>
<div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:ddad6b19-9951-4864-b69d-9b997d401d63" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre style="background-color:#FFFFFF;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;overflow: auto;"><span style="color: #000000;">   </span><span style="color: #0000FF;">public</span><span style="color: #000000;"> List</span><span style="color: #000000;">&lt;</span><span style="color: #0000FF;">object</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"> GetLastRecords(</span><span style="color: #0000FF;">int</span><span style="color: #000000;"> NoOfRecords)
        {
            var records </span><span style="color: #000000;">=</span><span style="color: #000000;">
                (from r </span><span style="color: #0000FF;">in</span><span style="color: #000000;"> DataClassesDataContext.Table
                 orderby r.Pk descending select r).Take(NoOfRecords);

            List</span><span style="color: #000000;">&lt;</span><span style="color: #0000FF;">object</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"> Result </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> List</span><span style="color: #000000;">&lt;</span><span style="color: #0000FF;">object</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">();

            </span><span style="color: #0000FF;">foreach</span><span style="color: #000000;"> (Record record </span><span style="color: #0000FF;">in</span><span style="color: #000000;"> records)
            {
                Result.Add(records);
            }

            </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> Result;
        }</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
]]></content:encoded>
			<wfw:commentRss>http://www.thedotnetway.net/2009/05/12/linq-to-sql-orderby-y-take/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ to Objects, filtrando por tipo de Objeto</title>
		<link>http://www.thedotnetway.net/2009/02/03/llinq-to-objects-filtrando-por-tipo-de-objeto/</link>
		<comments>http://www.thedotnetway.net/2009/02/03/llinq-to-objects-filtrando-por-tipo-de-objeto/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 15:20:00 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://thedotnetway.wordpress.com/2009/02/03/llinq-to-objects-filtrando-por-tipo-de-objeto/</guid>
		<description><![CDATA[El otro día estaba trabajando con unas clases que eran contenedoras de varios tipos de clases, en un array de Objetos, vi que estábamos accediendo al objeto por posición y luego haciéndole cast, suponiendo que ese tipo de objeto siempre estaría en esa posición, pero cuando se producían errores todos los objetos se movían hacia [...]]]></description>
			<content:encoded><![CDATA[<p>El otro día estaba trabajando con unas clases que eran contenedoras de varios tipos de clases, en un array de Objetos, vi que estábamos accediendo al objeto por posición y luego haciéndole cast, suponiendo que ese tipo de objeto siempre estaría en esa posición, pero cuando se producían errores todos los objetos se movían hacia abajo al insertar un objeto Error.</p>
<p>¿Para que suelto este rollo? pues porque me puse a probar LINQ para buscar en colecciones por tipo de objeto y, desde luego, es la manera mas elegante, cada día estoy mas enamorado de LINQ.</p>
<p>Aquí os dejo un código de ejemplo:</p>
<div style="line-height:normal;"><span style="font-size:9pt;"></p>
<div id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:67b7bf68-0ba6-40e3-839b-61919a7f2345" class="wlWriterEditableSmartContent" style="display:inline;float:none;margin:0;padding:0;">
<pre style="background-color:#FFFFFF;white-space:pre-wrap;overflow:none;font-family:Microsoft Sans Serif;font-size:11px;"><span style="color:#000000;"> </span><span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">static</span><span style="color:#000000;"> </span><span style="color:#0000FF;">void</span><span style="color:#000000;"> Test()
        {
            List</span><span style="color:#000000;">&lt;</span><span style="color:#0000FF;">object</span><span style="color:#000000;">&gt;</span><span style="color:#000000;"> Lista </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> List</span><span style="color:#000000;">&lt;</span><span style="color:#0000FF;">object</span><span style="color:#000000;">&gt;</span><span style="color:#000000;">();

            Lista.Add(</span><span style="color:#800080;">1</span><span style="color:#000000;">);
            Lista.Add(</span><span style="color:#800080;">2</span><span style="color:#000000;">);
            Lista.Add(</span><span style="color:#800080;">3</span><span style="color:#000000;">);
            Lista.Add(</span><span style="color:#800080;">4</span><span style="color:#000000;">);

            Lista.Add(</span><span style="color:#800000;">"</span><span style="color:#800000;">a</span><span style="color:#800000;">"</span><span style="color:#000000;">);
            Lista.Add(</span><span style="color:#800000;">"</span><span style="color:#800000;">b</span><span style="color:#800000;">"</span><span style="color:#000000;">);
            Lista.Add(</span><span style="color:#800000;">"</span><span style="color:#800000;">c</span><span style="color:#800000;">"</span><span style="color:#000000;">);
            Lista.Add(</span><span style="color:#800000;">"</span><span style="color:#800000;">d</span><span style="color:#800000;">"</span><span style="color:#000000;">);

            Lista.Add(DateTime.Today);
            Lista.Add(DateTime.Today.AddDays(</span><span style="color:#800080;">1</span><span style="color:#000000;">));
            Lista.Add(DateTime.Today.AddDays(</span><span style="color:#800080;">2</span><span style="color:#000000;">));
            Lista.Add(DateTime.Today.AddDays(</span><span style="color:#800080;">3</span><span style="color:#000000;">));

            var IntList </span><span style="color:#000000;">=</span><span style="color:#000000;">  from i </span><span style="color:#0000FF;">in</span><span style="color:#000000;"> Lista </span><span style="color:#0000FF;">where</span><span style="color:#000000;"> i.GetType() </span><span style="color:#000000;">==</span><span style="color:#000000;"> </span><span style="color:#0000FF;">typeof</span><span style="color:#000000;"> (</span><span style="color:#0000FF;">int</span><span style="color:#000000;">) select i;

            var StringList </span><span style="color:#000000;">=</span><span style="color:#000000;"> from s </span><span style="color:#0000FF;">in</span><span style="color:#000000;"> Lista </span><span style="color:#0000FF;">where</span><span style="color:#000000;"> s.GetType() </span><span style="color:#000000;">==</span><span style="color:#000000;"> </span><span style="color:#0000FF;">typeof</span><span style="color:#000000;">(</span><span style="color:#0000FF;">string</span><span style="color:#000000;">) select s;

            var DateTimeList </span><span style="color:#000000;">=</span><span style="color:#000000;">
                from d </span><span style="color:#0000FF;">in</span><span style="color:#000000;"> Lista </span><span style="color:#0000FF;">where</span><span style="color:#000000;"> d.GetType() </span><span style="color:#000000;">==</span><span style="color:#000000;"> </span><span style="color:#0000FF;">typeof</span><span style="color:#000000;">(DateTime) select d;

            Console.WriteLine(</span><span style="color:#800000;">"</span><span style="color:#800000;">Hay {0} Integers</span><span style="color:#800000;">"</span><span style="color:#000000;">,IntList.Count());
            Console.WriteLine(</span><span style="color:#800000;">"</span><span style="color:#800000;">Hay {0} Strings</span><span style="color:#800000;">"</span><span style="color:#000000;">, StringList.Count());
            Console.WriteLine(</span><span style="color:#800000;">"</span><span style="color:#800000;">Hay {0} DateTimes</span><span style="color:#800000;">"</span><span style="color:#000000;">, DateTimeList.Count());

            Console.ReadLine();
        }
</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.thedotnetway.net/2009/02/03/llinq-to-objects-filtrando-por-tipo-de-objeto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Love linq to objects</title>
		<link>http://www.thedotnetway.net/2008/08/21/i-love-linq-to-objects/</link>
		<comments>http://www.thedotnetway.net/2008/08/21/i-love-linq-to-objects/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 13:50:00 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://thedotnetway.wordpress.com/2008/08/21/i-love-linq-to-objects/</guid>
		<description><![CDATA[Estamos súper liados con proyectos nuevos, de ultima hora y para anteayer, así que nos queda poco tiempo para escribir &#8230; pero hace mucho tiempo que tengo pendiente este POST, así que .. Estoy empezando a usar linq to objects para trabajar con mis colecciones de objetos y la verdad es que es alucinante, se [...]]]></description>
			<content:encoded><![CDATA[<p>Estamos súper liados con proyectos nuevos, de ultima hora y para anteayer, así que nos queda poco tiempo para escribir &#8230; pero hace mucho tiempo que tengo pendiente este POST, así que ..</p>
<p>Estoy empezando a usar <a href="http://msdn.microsoft.com/en-us/library/bb397919.aspx">linq to objects</a> para trabajar con mis colecciones de objetos y la verdad es que es alucinante, se simplifica tanto el código, tenéis que probarlo, engancha &#8230; </p>
<p><img style="width:308px;height:206px;" height="291" src="http://www.thedotnetway.net/content/binary/LINQ_thumb.jpg" width="338" border="0" /></p>
<p>Voy a dejar unos ejemplos de código que estoy usando en los proyectos en marcha.</p>
<p>Aquí tenia un método que tenia que buscar en mi colección por unos valores y si no encontraba esos valores buscar por el mas cercano superior, eso en LINQ se queda en esta línea:</p>
</p>
<div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:5de6bd3f-a86a-4016-a329-afe0c93bf02c" style="display:inline;float:none;margin:0;padding:0;">
<pre style="background-color:#FFFFFF;white-space:pre-wrap;overflow:auto;font-family:Microsoft Sans Serif;font-size:11px;"><span style="color:#000000;">var t </span><span style="color:#000000;">=</span><span style="color:#000000;"> from t1 </span><span style="color:#0000FF;">in</span><span style="color:#000000;"> Lista
</span><span style="color:#0000FF;">where</span><span style="color:#000000;">
</span><span style="color:#800080;">1</span><span style="color:#000000;">.CodigoHabitacionLineaTarifaCliente </span><span style="color:#000000;">==</span><span style="color:#000000;"> CodHabitacion
</span><span style="color:#000000;">&amp;&amp;</span><span style="color:#000000;">
t1.CodigoRegimenLineaTarifaCliente </span><span style="color:#000000;">==</span><span style="color:#000000;"> CodigoRegimen
</span><span style="color:#000000;">&amp;&amp;</span><span style="color:#000000;">
t1.CodigoTarifaLineaTarifaCliene </span><span style="color:#000000;">==</span><span style="color:#000000;"> CodigoTarifa
</span><span style="color:#000000;">&amp;&amp;</span><span style="color:#000000;">
t1.AdultosLineaTarifaCliente </span><span style="color:#000000;">&gt;=</span><span style="color:#000000;"> AD
</span><span style="color:#000000;">&amp;&amp;</span><span style="color:#000000;">
t1.NinosLineaTarifaCliente </span><span style="color:#000000;">&gt;=</span><span style="color:#000000;"> CH
</span><span style="color:#000000;">&amp;&amp;</span><span style="color:#000000;">
t1.CunasLineaTarifaCliente </span><span style="color:#000000;">&gt;=</span><span style="color:#000000;"> EN
orderby
t1.AdultosLineaTarifaCliente,
t1.NinosLineaTarifaCliente,
t1.CunasLineaTarifaCliente ascending
select t1;</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
</p>
<p>Aquí una búsqueda normal de toda la vida</p>
</p>
<div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:51324756-8ac6-4cc7-bece-6665ce7eb999" style="display:inline;float:none;margin:0;padding:0;">
<pre style="background-color:#FFFFFF;white-space:pre-wrap;overflow:auto;font-family:Microsoft Sans Serif;font-size:11px;"><span style="color:#000000;">var t </span><span style="color:#000000;">=</span><span style="color:#000000;"> from t1 </span><span style="color:#0000FF;">in</span><span style="color:#000000;"> Lista
</span><span style="color:#0000FF;">where</span><span style="color:#000000;">
t1.CodigoHabitacionLineaTarifaCliente </span><span style="color:#000000;">==</span><span style="color:#000000;"> CodHabitacion
</span><span style="color:#000000;">&amp;&amp;</span><span style="color:#000000;">
t1.CodigoRegimenLineaTarifaCliente </span><span style="color:#000000;">==</span><span style="color:#000000;"> CodigoRegimen
</span><span style="color:#000000;">&amp;&amp;</span><span style="color:#000000;">
t1.CodigoTarifaLineaTarifaCliene </span><span style="color:#000000;">==</span><span style="color:#000000;"> CodigoTarifa
select t1;
</span><span style="color:#0000FF;">if</span><span style="color:#000000;"> (t.Count() </span><span style="color:#000000;">==</span><span style="color:#000000;"> </span><span style="color:#800080;">0</span><span style="color:#000000;">)
  </span><span style="color:#0000FF;">throw</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> Exception(NDatos);</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
</p>
<p>Y lo mejor, usar sum y group by en nuestras colecciones,<br />
  <br />aqui agrupando y sumando precios x día</p>
</p>
<div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:8d09b488-42db-47a4-9322-4609035832b1" style="display:inline;float:none;margin:0;padding:0;">
<pre style="background-color:#FFFFFF;white-space:pre-wrap;overflow:auto;font-family:Microsoft Sans Serif;font-size:11px;"><span style="color:#000000;">var GroupedPrices </span><span style="color:#000000;">=</span><span style="color:#000000;"> from pd </span><span style="color:#0000FF;">in</span><span style="color:#000000;"> b.PriceDetails group pd by pd.Day into g
select </span><span style="color:#0000FF;">new</span><span style="color:#000000;"> {Day </span><span style="color:#000000;">=</span><span style="color:#000000;"> g.Key, TotalPriceDay </span><span style="color:#000000;">=</span><span style="color:#000000;"> g.Sum(v1 </span><span style="color:#000000;">=&gt;</span><span style="color:#000000;"> v1.Amount)};
</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
</p>
<p>Cuando empeceis a usarlo no podreis vivir sin el <img src='http://www.thedotnetway.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <span style="font-size:11px;color:black;font-family:courier new;background-color:transparent;"><span style="font-size:11px;color:black;font-family:courier new;background-color:transparent;"></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thedotnetway.net/2008/08/21/i-love-linq-to-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ y Tipos An&#243;nimos en C# 3.0</title>
		<link>http://www.thedotnetway.net/2008/01/25/linq-y-tipos-anonimos-en-c-30/</link>
		<comments>http://www.thedotnetway.net/2008/01/25/linq-y-tipos-anonimos-en-c-30/#comments</comments>
		<pubDate>Fri, 25 Jan 2008 14:38:00 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://thedotnetway.wordpress.com/2008/01/25/linq-y-tipos-anonimos-en-c-30/</guid>
		<description><![CDATA[Los tipos anónimos son una de las grandes mejoras en C# 3.0, nos permiten definir tipos en el código sin hacer la definición &#34;formal&#34; de la clase mediante la palabra clave &#34;var&#34;. var MyVar = new { ID = 1, Name = "MyVar", };]]></description>
			<content:encoded><![CDATA[<p>Los tipos anónimos son una de las grandes mejoras en C# 3.0, nos permiten definir tipos en el código sin hacer la definición &quot;formal&quot; de la clase mediante la palabra clave &quot;var&quot;.</p>
</p>
<div class="wlWriterEditableSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:25100322-e431-4673-a6aa-61811dc0f51c" style="display:inline;float:none;margin:0;padding:0;">
<pre style="background-color:#FFFFFF;white-space:pre-wrap;overflow:auto;font-family:Microsoft Sans Serif;font-size:11px;"><span style="color:#000000;">var MyVar </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000FF;">new</span><span style="color:#000000;">
     {
         ID </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#800080;">1</span><span style="color:#000000;">,
         Name </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#800000;">"</span><span style="color:#800000;">MyVar</span><span style="color:#800000;">"</span><span style="color:#000000;">,
     };

</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
</p>
<p>Estos tipos nos serán realmente útiles en las sentencias LINQ</p>
</p>
<p><font face="Verdana" color="#003300" size="2"><span style="font-size:11px;color:black;font-family:courier new;background-color:transparent;">&#160;<img style="width:459px;height:370px;" height="414" src="http://www.thedotnetway.net/content/binary/TiposAnonimosLINQ.png" width="603" border="0" /></span></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thedotnetway.net/2008/01/25/linq-y-tipos-anonimos-en-c-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>20 minutos de Video &quot;Essential LINQ to Objects&quot;</title>
		<link>http://www.thedotnetway.net/2008/01/03/20-minutos-de-video-essential-linq-to-objects/</link>
		<comments>http://www.thedotnetway.net/2008/01/03/20-minutos-de-video-essential-linq-to-objects/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 14:57:00 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://thedotnetway.wordpress.com/2008/01/03/20-minutos-de-video-essential-linq-to-objects/</guid>
		<description><![CDATA[Bart De Smet ha creado un video de 20 minutos &#34;Essential LINQ to Objects&#34;, en el nos explica los aspectos básicos para crear una implementación personalizada de los operadores estandar de consultas]]></description>
			<content:encoded><![CDATA[<p><a href="http://bartdesmet.net/blogs/bart/default.aspx" target="_blank">Bart De Smet</a> ha creado un video de 20 minutos &quot;<a href="http://www.microsoft.com/belux/msdn/nl/chopsticks/default.aspx?id=168" target="_blank">Essential LINQ to Objects</a>&quot;, en el nos explica los aspectos básicos para crear una <a href="http://www.codeplex.com/LINQSQO">implementación personalizada de los operadores estandar de consultas</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thedotnetway.net/2008/01/03/20-minutos-de-video-essential-linq-to-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQPad</title>
		<link>http://www.thedotnetway.net/2007/12/18/linqpad/</link>
		<comments>http://www.thedotnetway.net/2007/12/18/linqpad/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 15:02:00 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://thedotnetway.wordpress.com/2007/12/18/linqpad/</guid>
		<description><![CDATA[LINQPad es una utilidad gratuita que nos permite ejecutar sentencias LINQ sobre bases de datos SQL Server El aspecto es bastante parecido al SQL Management Studio, y la instalación es realmente sencilla, un exe y listo. Es una herramienta que nos será de gran utilidad para testear nuestras consultas LINQ, soporta C#, VB y T-SQL [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.linqpad.net/">LINQPad</a> es una utilidad gratuita que nos permite ejecutar sentencias <a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx">LINQ</a> sobre bases de datos SQL Server </p>
<p><a href="http://www.linqpad.net/"><img height="97" src="http://www.thedotnetway.net/content/binary/linqpadlogo.png" width="100" border="0" /></a></p>
<p>El aspecto es bastante parecido al SQL Management Studio, y la instalación es realmente sencilla, un exe y listo.</p>
</p>
<p><a href="http://www.linqpad.net"><img src="http://www.thedotnetway.net/content/binary/linqpad.png" border="0" /></a></p>
<p>Es una herramienta que nos será de gran utilidad para testear nuestras consultas LINQ, soporta C#, VB y T-SQL y viene con multitud de ejemplos de consultas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thedotnetway.net/2007/12/18/linqpad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>101 Ejemplos de LINQ</title>
		<link>http://www.thedotnetway.net/2007/12/04/101-ejemplos-de-linq/</link>
		<comments>http://www.thedotnetway.net/2007/12/04/101-ejemplos-de-linq/#comments</comments>
		<pubDate>Tue, 04 Dec 2007 15:19:00 +0000</pubDate>
		<dc:creator>Emilio Torrens</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://thedotnetway.wordpress.com/2007/12/04/101-ejemplos-de-linq/</guid>
		<description><![CDATA[Tenemos disponible en MSDN 101 ejemplos de LINQ La verdad es que están súper bien organizados agrupados por Operaciones, cada ejemplo con su código, pégale un vistazo.]]></description>
			<content:encoded><![CDATA[<p>Tenemos disponible en MSDN <a href="http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx">101 ejemplos de LINQ</a></p>
<p><a href="http://msdn2.microsoft.com/es-es/netframework/aa904594(en-us).aspx"><img src="http://www.thedotnetway.net/content/binary/arquitecturaLINQ_thumb.jpg" border="0" /></a></p>
<p>La verdad es que están súper bien organizados agrupados por Operaciones, cada ejemplo con su código, pégale un vistazo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thedotnetway.net/2007/12/04/101-ejemplos-de-linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
