<?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>Nisi's work blog &#187; Visual C#</title>
	<atom:link href="http://wiki.nisi.ro/category/programming/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://wiki.nisi.ro</link>
	<description>Nisi's work blog - programing tips</description>
	<lastBuildDate>Mon, 21 Nov 2011 08:43:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>LINQ to XML (C#) create new xml document</title>
		<link>http://wiki.nisi.ro/2008/04/linq-to-xml-c-create-new-xml-document/</link>
		<comments>http://wiki.nisi.ro/2008/04/linq-to-xml-c-create-new-xml-document/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 15:14:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Visual C#]]></category>

		<guid isPermaLink="false">http://wiki.nisi.ro/?p=12</guid>
		<description><![CDATA[How to create a new xml with LINQ &#160; var objCars= new&#91;&#93; &#123; new &#123;CarID = 2, CarName = &#34;Ford&#34;, Fuel = &#34;Diesel&#34;&#125;, new &#123;CarID = 3, CarName = &#34;Audi&#34;, Fuel = &#34;Diesel&#34;&#125;, new &#123;CarID = 4, CarName = &#34;Mercedes&#34;, Fuel = &#34;Diesel&#34;&#125;, new &#123;CarID = 1, CarName = &#34;BMW&#34;, Fuel = &#34;Diesel&#34;&#125; &#125;; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>How to create a new xml with LINQ</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">var objCars= <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a><span class="br0">&#91;</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="br0">&#123;</span>CarID = <span class="nu0">2</span>, CarName = <span class="st0">&quot;Ford&quot;</span>, Fuel = <span class="st0">&quot;Diesel&quot;</span><span class="br0">&#125;</span>,</div>
</li>
<li class="li2">
<div class="de2"><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="br0">&#123;</span>CarID = <span class="nu0">3</span>, CarName = <span class="st0">&quot;Audi&quot;</span>, Fuel = <span class="st0">&quot;Diesel&quot;</span><span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="br0">&#123;</span>CarID = <span class="nu0">4</span>, CarName = <span class="st0">&quot;Mercedes&quot;</span>, Fuel = <span class="st0">&quot;Diesel&quot;</span><span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="br0">&#123;</span>CarID = <span class="nu0">1</span>, CarName = <span class="st0">&quot;BMW&quot;</span>, Fuel = <span class="st0">&quot;Diesel&quot;</span><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">XElement _cars = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> XElement<span class="br0">&#40;</span><span class="st0">&quot;cars&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">from c <span class="kw1">in</span> objCars</div>
</li>
<li class="li1">
<div class="de1">select <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> XElement<span class="br0">&#40;</span><span class="st0">&quot;car&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> XElement<span class="br0">&#40;</span><span class="st0">&quot;name&quot;</span>, c.<span class="me1">CarName</span><span class="br0">&#41;</span>,</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> XAttribute<span class="br0">&#40;</span><span class="st0">&quot;ID&quot;</span>, c.<span class="me1">CarID</span><span class="br0">&#41;</span>,</div>
</li>
<li class="li2">
<div class="de2"><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> XElement<span class="br0">&#40;</span><span class="st0">&quot;Fuel&quot;</span>, c.<span class="me1">Fuel</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">Console.<span class="me1">WriteLine</span><span class="br0">&#40;</span>_cars<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
</ol>
</div>
<p>so this will print something like:</p>
<p>Ford<br />
Diesel</p>
<p>Audi<br />
Diesel</p>
<p>Mercedes<br />
Diesel</p>
<p>BMW<br />
Diesel</p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.nisi.ro/2008/04/linq-to-xml-c-create-new-xml-document/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Formatting C# strings</title>
		<link>http://wiki.nisi.ro/2008/03/formatting-c-strings/</link>
		<comments>http://wiki.nisi.ro/2008/03/formatting-c-strings/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 09:02:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Visual C#]]></category>

		<guid isPermaLink="false">http://wiki.nisi.ro/?p=7</guid>
		<description><![CDATA[&#160; string s = String.Format&#40;&#34;{{ hello to all }}&#34;&#41;; Console.WriteLine&#40;s&#41;; &#160; &#160;//prints &#8216;{ hello to all }&#8217; &#160; int i = 42; string s = String.Format&#40;&#34;{0}&#34;, i&#41;; &#160; //prints &#8217;42&#8242; &#160; int i = 42; string s = String.Format&#40;&#34;{{{0}}}&#34;, i&#41;; &#160; //prints &#8216;{42}&#8217; &#160; &#160; &#160; int i = 42; string s = String.Format&#40;&#34;{0:N}&#34;, i&#41;; [...]]]></description>
			<content:encoded><![CDATA[<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{{ hello to all }}&quot;</span><span class="br0">&#41;</span>; </div>
</li>
<li class="li1">
<div class="de1">Console.<span class="me1">WriteLine</span><span class="br0">&#40;</span>s<span class="br0">&#41;</span>; &nbsp; &nbsp;<span class="co1">//prints &#8216;{ hello to all }&#8217; </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">int</span> i = <span class="nu0">42</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{0}&quot;</span>, i<span class="br0">&#41;</span>; &nbsp; <span class="co1">//prints &#8217;42&#8242; </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> i = <span class="nu0">42</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{{{0}}}&quot;</span>, i<span class="br0">&#41;</span>; &nbsp; <span class="co1">//prints &#8216;{42}&#8217; </span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> i = <span class="nu0">42</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{0:N}&quot;</span>, i<span class="br0">&#41;</span>; &nbsp; <span class="co1">//prints &#8217;42.00&#8242; </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">int</span> i = <span class="nu0">42</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{{{0:N}}}&quot;</span>, i<span class="br0">&#41;</span>; &nbsp; <span class="co1">//prints &#8216;{N}&#8217; </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> i = <span class="nu0">42</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{0:N!}&quot;</span>, i<span class="br0">&#41;</span>; &nbsp; <span class="co1">//prints &#8216;N!&#8217; </span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> i = <span class="nu0">42</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{{{0:N}}}&quot;</span>, i<span class="br0">&#41;</span>; &nbsp; <span class="co1">//prints &#8216;{N}&#8217; </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s = </div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{0}{1}{2}&quot;</span>, <span class="st0">&quot;{&quot;</span>, i, <span class="st0">&quot;}&quot;</span><span class="br0">&#41;</span>; &nbsp; <span class="co1">//prints &#8216;{42.00}&#8217; </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> i = <span class="nu0">42</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{{{0}}}&quot;</span>, i.<span class="me1">ToString</span><span class="br0">&#40;</span><span class="st0">&quot;N&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> ; &nbsp; <span class="co1">//prints &#8216;{42.00}&#8217; </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw4">int</span> i = <span class="nu0">42</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{0:{{0.00}}}&quot;</span>, i<span class="br0">&#41;</span>; &nbsp; <span class="co1">//prints &#8216;{42.00}&#8217; </span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> i = <span class="nu0">42</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{0,-7:N}&quot;</span>, i<span class="br0">&#41;</span>; &nbsp; <span class="co1">//prints &#8217;42.00 &nbsp;&#8217;, &quot;,-7&quot; left-justifies the string </span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> i = <span class="nu0">42</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s1 = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{{{0,-7:N}}}&quot;</span>, i<span class="br0">&#41;</span>; &nbsp; <span class="co1">//prints &#8216;{42.00 &nbsp;}&#8217; </span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s2 = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{{{0,-7}}}&quot;</span>, i.<span class="me1">ToString</span><span class="br0">&#40;</span><span class="st0">&quot;N&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> ; &nbsp; <span class="co1">//prints &#8216;{42.00 &nbsp;}&#8217; </span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s3 = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{0,-9:{{0.00}}}&quot;</span>, i<span class="br0">&#41;</span>; &nbsp; <span class="co1">//prints &#8216;{42.00} &nbsp;&#8217; </span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span> i = <span class="nu0">42000</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">string</span> s = <span class="kw4">String</span>.<span class="me1">Format</span><span class="br0">&#40;</span><span class="st0">&quot;{0,-15:{{#,##0.00}}}&quot;</span>, i<span class="br0">&#41;</span>; &nbsp; <span class="co1">//prints &#8216;{42,000.00} &nbsp; &nbsp; &#8216;</span></div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wiki.nisi.ro/2008/03/formatting-c-strings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ to DataSet (C#)</title>
		<link>http://wiki.nisi.ro/2008/03/linq-to-dataset-c/</link>
		<comments>http://wiki.nisi.ro/2008/03/linq-to-dataset-c/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 08:53:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Visual C#]]></category>

		<guid isPermaLink="false">http://wiki.nisi.ro/?p=6</guid>
		<description><![CDATA[LINQ to DataSet Perform set operations on sequences of DataRow objects. Retrieve and set DataColumn values Obtain a LINQ standard IEnumerable sequence from a DataTable so Standard Query Operatorsmay be called. To use LINQ to Dataset include next namespaces using System.Data; using System.Linq; Step by Step Exemple: Starting with a simple class: class Student &#123; [...]]]></description>
			<content:encoded><![CDATA[<p><strong>LINQ to DataSet</strong></p>
<ul>
<li>Perform set operations on sequences of DataRow objects.</li>
<li>Retrieve and set DataColumn values</li>
<li>Obtain a LINQ standard IEnumerable sequence from a DataTable so Standard Query Operatorsmay be called.</li>
</ul>
<p><br />
To use LINQ to Dataset include next namespaces</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">Data</span>; <span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">Linq</span>;</div>
</li>
</ol>
</div>
<p>Step by Step Exemple:</p>
<p>Starting with a simple class:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw4">class</span> Student <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">int</span> Id;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">string</span> Name;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>this class is like a table where we have an row Id (public int Id) and a value (here is Name public string Name)</p>
<p>Next convert a list of Student Class in a Data Table</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"> &nbsp; &nbsp; <span class="co1">// create DataTable</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; DataTable table = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> DataTable<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; table.<span class="me1">Columns</span>.<span class="me1">Add</span><span class="br0">&#40;</span><span class="st0">&quot;Id&quot;</span>, <a href="http://www.google.com/search?q=typeof+msdn.microsoft.com"><span class="kw3">typeof</span></a><span class="br0">&#40;</span>Int32<span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; table.<span class="me1">Columns</span>.<span class="me1">Add</span><span class="br0">&#40;</span><span class="st0">&quot;Name&quot;</span>, <a href="http://www.google.com/search?q=typeof+msdn.microsoft.com"><span class="kw3">typeof</span></a><span class="br0">&#40;</span><span class="kw4">string</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">// fill with info</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw1">foreach</span> <span class="br0">&#40;</span>Student student <span class="kw1">in</span> students<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table.<span class="me1">Rows</span>.<span class="me1">Add</span><span class="br0">&#40;</span>student.<span class="me1">Id</span>, student.<span class="me1">Name</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Other Query examples:</p>
<p>There are to way of write a LINQ Query<br />
Query expression<br />
and<br />
Method Query</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// Query expression example</span></div>
</li>
<li class="li1">
<div class="de1">var query = from r <span class="kw1">in</span> customerDataTable.<span class="me1">AsEnumerable</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;where r.<span class="me1">Field</span><span class="br0">&#40;</span><span class="st0">&quot;LastName&quot;</span><span class="br0">&#41;</span> == <span class="st0">&quot;Smith&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;select r.<span class="me1">Field</span><span class="br0">&#40;</span>“FirstName”<span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// same example in Method query</span></div>
</li>
<li class="li1">
<div class="de1">var query = customerDataTable.<span class="me1">AsEnumerable</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span class="me1">Where</span><span class="br0">&#40;</span>dr =&gt; dr.<span class="me1">Field</span><span class="br0">&#40;</span><span class="st0">&quot;LastName&quot;</span><span class="br0">&#41;</span> == <span class="st0">&quot;Smith&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .<span class="me1">Select</span><span class="br0">&#40;</span>dr =&gt; dr.<span class="me1">Field</span><span class="br0">&#40;</span><span class="st0">&quot;FirstName&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Buy Visual studio:</p>
<ul>
<li><a href="http://www.amazon.com/gp/product/B000WM04HU?ie=UTF8&amp;tag=nisbl0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000WM04HU">Microsoft Visual Studio 2008 Professional</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=nisbl0a-20&amp;l=as2&amp;o=1&amp;a=B000WM04HU" border="0" alt="" width="1" height="1" /> 632$</li>
<li><a href="http://www.amazon.com/gp/product/B000WM1Z46?ie=UTF8&amp;tag=nisbl0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000WM1Z46">Microsoft Visual Studio 2008 Standard</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=nisbl0a-20&amp;l=as2&amp;o=1&amp;a=B000WM1Z46" border="0" alt="" width="1" height="1" /> 240$</li>
<li><a href="http://www.amazon.com/gp/product/B000WM3L3Y?ie=UTF8&amp;tag=nisbl0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000WM3L3Y">Microsoft Visual Studio 2008 Professional Upgrade</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=nisbl0a-20&amp;l=as2&amp;o=1&amp;a=B000WM3L3Y" border="0" alt="" width="1" height="1" /> 452$</li>
<li><a href="http://www.amazon.com/gp/product/B000WLY9XG?ie=UTF8&amp;tag=nisbl0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000WLY9XG">Microsoft Visual Studio 2008 Standard Upgrade</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=nisbl0a-20&amp;l=as2&amp;o=1&amp;a=B000WLY9XG" border="0" alt="" width="1" height="1" /> 165$</li>
<li><a href="http://www.amazon.com/gp/product/B000WM1Z64?ie=UTF8&amp;tag=nisbl0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000WM1Z64">Microsoft Visual Studio 2008 Professional with MSDN Premium</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=nisbl0a-20&amp;l=as2&amp;o=1&amp;a=B000WM1Z64" border="0" alt="" width="1" height="1" /> 2225$</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://wiki.nisi.ro/2008/03/linq-to-dataset-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET &#8211; LINQ in C#</title>
		<link>http://wiki.nisi.ro/2008/03/net-linq-in-c/</link>
		<comments>http://wiki.nisi.ro/2008/03/net-linq-in-c/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 08:51:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Visual C#]]></category>
		<category><![CDATA[LINQ to DataSet]]></category>
		<category><![CDATA[LINQ to Entities]]></category>
		<category><![CDATA[LINQ to Objects]]></category>
		<category><![CDATA[LINQ to SQL]]></category>
		<category><![CDATA[LINQ to XML]]></category>

		<guid isPermaLink="false">http://wiki.nisi.ro/?p=4</guid>
		<description><![CDATA[LINQ (Language integrated Query) string&#91;&#93; numbers = &#123; &#34;0042&#34;, &#34;010&#34;, &#34;9&#34;, &#34;27&#34; &#125;; int&#91;&#93; nums = numbers.Select&#40;s =&#62; Int32.Parse&#40;s&#41;&#41;.ToArray&#40;&#41;; foreach &#40;var num in nums&#41; Console.WriteLine&#40;num&#41;; What where LINQ is useful? LINQ to Objects - LINQ to XML - LINQ to SQL - LINQ to DataSet Perform set operations on sequences of DataRow objects. Retrieve and [...]]]></description>
			<content:encoded><![CDATA[<p><strong>LINQ (Language integrated Query) </strong></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw4">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbers = <span class="br0">&#123;</span> <span class="st0">&quot;0042&quot;</span>, <span class="st0">&quot;010&quot;</span>, <span class="st0">&quot;9&quot;</span>, <span class="st0">&quot;27&quot;</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> nums = numbers.<span class="me1">Select</span><span class="br0">&#40;</span>s =&gt; Int32.<span class="me1">Parse</span><span class="br0">&#40;</span>s<span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="me1">ToArray</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">foreach</span> <span class="br0">&#40;</span>var num <span class="kw1">in</span> nums<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">Console.<span class="me1">WriteLine</span><span class="br0">&#40;</span>num<span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>What where LINQ is useful?<br />
<br />
<strong>LINQ to Objects -</strong></p>
<p><strong>LINQ to XML</strong> -</p>
<p><a title="LINQ to SQL" href="http://wiki.nisi.ro/?p=3"><strong>LINQ to SQL</strong> </a>-</p>
<p><strong><a title="Linq to Dataset" href="http://wiki.nisi.ro/?p=6">LINQ to DataSet</a></strong></p>
<ul>
<li>Perform set operations on sequences of DataRow objects.</li>
<li>Retrieve and set DataColumn values</li>
<li>Obtain a LINQ standard IEnumerable sequence from a DataTable so Standard Query Operatorsmay be called.</li>
</ul>
<p><strong>LINQ to Entities</strong> -</p>
<p><a title="LINQ sintax Samples" href="http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx">101 LinQ Samples</a></p>
<p>What You can do with LINQ</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbers = <span class="br0">&#123;</span> <span class="nu0">5</span>, <span class="nu0">4</span>, <span class="nu0">1</span>, <span class="nu0">3</span>, <span class="nu0">9</span>, <span class="nu0">8</span>, <span class="nu0">6</span>, <span class="nu0">7</span>, <span class="nu0">2</span>, <span class="nu0">0</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// select var numsPlusOne =</span></div>
</li>
<li class="li1">
<div class="de1">from n <span class="kw1">in</span> numbers</div>
</li>
<li class="li1">
<div class="de1">select n + <span class="nu0">1</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">// where var lowNums =</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">from n <span class="kw1">in</span> numbers</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;where n &lt; <span class="nu0">5</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;select n;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// groupby var numberGroups =</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;from n <span class="kw1">in</span> numbers</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;group n by n % <span class="nu0">5</span> into g</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;select <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="br0">&#123;</span> Remainder = g.<span class="me1">Key</span>, Numbers = g <span class="br0">&#125;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// many select</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbersA = <span class="br0">&#123;</span> <span class="nu0">0</span>, <span class="nu0">2</span>, <span class="nu0">4</span>, <span class="nu0">5</span>, <span class="nu0">6</span>, <span class="nu0">8</span>, <span class="nu0">9</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbersB = <span class="br0">&#123;</span> <span class="nu0">1</span>, <span class="nu0">3</span>, <span class="nu0">5</span>, <span class="nu0">7</span>, <span class="nu0">8</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;var pairs =</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;from a <span class="kw1">in</span> numbersA</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;from b <span class="kw1">in</span> numbersB</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;where a &lt; b</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;select <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> <span class="br0">&#123;</span>a, b<span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">// Take &#8211; first n elements.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbers = <span class="br0">&#123;</span> <span class="nu0">5</span>, <span class="nu0">4</span>, <span class="nu0">1</span>, <span class="nu0">3</span>, <span class="nu0">9</span>, <span class="nu0">8</span>, <span class="nu0">6</span>, <span class="nu0">7</span>, <span class="nu0">2</span>, <span class="nu0">0</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;var first3Numbers = numbers.<span class="me1">Take</span><span class="br0">&#40;</span><span class="nu0">3</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;Console.<span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="st0">&quot;First 3 numbers:&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw1">foreach</span> <span class="br0">&#40;</span>var n <span class="kw1">in</span> first3Numbers<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Console.<span class="me1">WriteLine</span><span class="br0">&#40;</span>n<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Skip &#8211; This sample uses Skip to get all but the first 4 elements of the array.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbers = <span class="br0">&#123;</span> <span class="nu0">5</span>, <span class="nu0">4</span>, <span class="nu0">1</span>, <span class="nu0">3</span>, <span class="nu0">9</span>, <span class="nu0">8</span>, <span class="nu0">6</span>, <span class="nu0">7</span>, <span class="nu0">2</span>, <span class="nu0">0</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;var allButFirst4Numbers = numbers.<span class="me1">Skip</span><span class="br0">&#40;</span><span class="nu0">4</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;var firstNumbersLessThan6 = numbers.<span class="me1">TakeWhile</span><span class="br0">&#40;</span>n =&gt; n &gt; <span class="nu0">6</span><span class="br0">&#41;</span>; &nbsp; &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// TakeWhile &nbsp;(take 5, 4, 1 3)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbers = <span class="br0">&#123;</span> <span class="nu0">5</span>, <span class="nu0">4</span>, <span class="nu0">1</span>, <span class="nu0">3</span>, <span class="nu0">9</span>, <span class="nu0">8</span>, <span class="nu0">6</span>, <span class="nu0">7</span>, <span class="nu0">2</span>, <span class="nu0">0</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;var firstNumbersLessThan6 = numbers.<span class="me1">TakeWhile</span><span class="br0">&#40;</span>n =&gt; n &gt; <span class="nu0">6</span><span class="br0">&#41;</span>; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// SkipWhile (allButFirst3Numbers &nbsp;contain 3, 9, 8, 6, 7, 8, 0)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbers = <span class="br0">&#123;</span> <span class="nu0">5</span>, <span class="nu0">4</span>, <span class="nu0">1</span>, <span class="nu0">3</span>, <span class="nu0">9</span>, <span class="nu0">8</span>, <span class="nu0">6</span>, <span class="nu0">7</span>, <span class="nu0">2</span>, <span class="nu0">0</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;var allButFirst3Numbers = numbers.<span class="me1">SkipWhile</span><span class="br0">&#40;</span>n =&gt; n % <span class="nu0">3</span> != <span class="nu0">0</span><span class="br0">&#41;</span>; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// OrderBy</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw4">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span> words = <span class="br0">&#123;</span> <span class="st0">&quot;cherry&quot;</span>, <span class="st0">&quot;apple&quot;</span>, <span class="st0">&quot;blueberry&quot;</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;var sortedWords =</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; from w <span class="kw1">in</span> words</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; orderby w &nbsp; <span class="coMULTI">/* [ascending][descending] */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select w; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* ascending or descending are optional, if order direction is missing</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">(ascending/descending) by default is sort ascending*/</span> &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Reverse</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw4">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span> digits = <span class="br0">&#123;</span> <span class="st0">&quot;zero&quot;</span>, <span class="st0">&quot;one&quot;</span>, <span class="st0">&quot;two&quot;</span>, <span class="st0">&quot;three&quot;</span>, <span class="st0">&quot;four&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;five&quot;</span>, <span class="st0">&quot;six&quot;</span>, <span class="st0">&quot;seven&quot;</span>, <span class="st0">&quot;eight&quot;</span>, <span class="st0">&quot;nine&quot;</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;var reversedIDigits = <span class="br0">&#40;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp;from d <span class="kw1">in</span> digits select d<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.<span class="me1">Reverse</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* exemple reverse digits list*/</span> &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">// DISTINCT</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> factorsOf300 = <span class="br0">&#123;</span> <span class="nu0">2</span>, <span class="nu0">2</span>, <span class="nu0">3</span>, <span class="nu0">5</span>, <span class="nu0">5</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; var uniqueFactors = factorsOf300.<span class="me1">Distinct</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* uniqueFactors become something like 2, 3, 5*/</span> &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">// UNION</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbersA = <span class="br0">&#123;</span> <span class="nu0">0</span>, <span class="nu0">2</span>, <span class="nu0">4</span>, <span class="nu0">5</span>, <span class="nu0">6</span>, <span class="nu0">8</span>, <span class="nu0">9</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbersB = <span class="br0">&#123;</span> <span class="nu0">1</span>, <span class="nu0">3</span>, <span class="nu0">5</span>, <span class="nu0">7</span>, <span class="nu0">8</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; var uniqueNumbers = numbersA.<span class="me1">Union</span><span class="br0">&#40;</span>numbersB<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/* append numbersB to numbersA and store it in uniqueNumbers &nbsp;*/</span> &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// INTERSECT</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbersA = <span class="br0">&#123;</span> <span class="nu0">0</span>, <span class="nu0">2</span>, <span class="nu0">4</span>, <span class="nu0">5</span>, <span class="nu0">6</span>, <span class="nu0">8</span>, <span class="nu0">9</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbersB = <span class="br0">&#123;</span> <span class="nu0">1</span>, <span class="nu0">3</span>, <span class="nu0">5</span>, <span class="nu0">7</span>, <span class="nu0">8</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; var commonNumbers = numbersA.<span class="me1">Intersect</span><span class="br0">&#40;</span>numbersB<span class="br0">&#41;</span>; &nbsp; &nbsp; &nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// EXCEPT</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbersA = <span class="br0">&#123;</span> <span class="nu0">0</span>, <span class="nu0">2</span>, <span class="nu0">4</span>, <span class="nu0">5</span>, <span class="nu0">6</span>, <span class="nu0">8</span>, <span class="nu0">9</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span> numbersB = <span class="br0">&#123;</span> <span class="nu0">1</span>, <span class="nu0">3</span>, <span class="nu0">5</span>, <span class="nu0">7</span>, <span class="nu0">8</span> <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; IEnumerable aOnlyNumbers = numbersA.<span class="me1">Except</span><span class="br0">&#40;</span>numbersB<span class="br0">&#41;</span>; &nbsp; &nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="coMULTI">/* aOnlyNumbers contain just numbers who are in one list and not in the other */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p><strong>Buy Visual studio:</strong></p>
<ul>
<li><a href="http://www.amazon.com/gp/product/B000WM04HU?ie=UTF8&amp;tag=nisbl0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000WM04HU">Microsoft Visual Studio 2008 Professional</a><img style="border: medium none  ! important; margin: 0px ! important;" src="http://www.assoc-amazon.com/e/ir?t=nisbl0a-20&amp;l=as2&amp;o=1&amp;a=B000WM04HU" border="0" alt="" width="1" height="1" /> 632$</li>
<li><a href="http://www.amazon.com/gp/product/B000WM1Z46?ie=UTF8&amp;tag=nisbl0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000WM1Z46">Microsoft Visual Studio 2008 Standard</a><img style="border: medium none  ! important; margin: 0px ! important;" src="http://www.assoc-amazon.com/e/ir?t=nisbl0a-20&amp;l=as2&amp;o=1&amp;a=B000WM1Z46" border="0" alt="" width="1" height="1" /> 240$</li>
<li><a href="http://www.amazon.com/gp/product/B000WM3L3Y?ie=UTF8&amp;tag=nisbl0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000WM3L3Y">Microsoft Visual Studio 2008 Professional Upgrade</a><img style="border: medium none  ! important; margin: 0px ! important;" src="http://www.assoc-amazon.com/e/ir?t=nisbl0a-20&amp;l=as2&amp;o=1&amp;a=B000WM3L3Y" border="0" alt="" width="1" height="1" /> 452$</li>
<li><a href="http://www.amazon.com/gp/product/B000WLY9XG?ie=UTF8&amp;tag=nisbl0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000WLY9XG">Microsoft Visual Studio 2008 Standard Upgrade</a><img style="border: medium none  ! important; margin: 0px ! important;" src="http://www.assoc-amazon.com/e/ir?t=nisbl0a-20&amp;l=as2&amp;o=1&amp;a=B000WLY9XG" border="0" alt="" width="1" height="1" /> 165$</li>
<li><a href="http://www.amazon.com/gp/product/B000WM1Z64?ie=UTF8&amp;tag=nisbl0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000WM1Z64">Microsoft Visual Studio 2008 Professional with MSDN Premium</a><img style="border: medium none  ! important; margin: 0px ! important;" src="http://www.assoc-amazon.com/e/ir?t=nisbl0a-20&amp;l=as2&amp;o=1&amp;a=B000WM1Z64" border="0" alt="" width="1" height="1" /> 2225$</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://wiki.nisi.ro/2008/03/net-linq-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ to SQL (C#)</title>
		<link>http://wiki.nisi.ro/2008/03/starting-with-linq-to-sql-c/</link>
		<comments>http://wiki.nisi.ro/2008/03/starting-with-linq-to-sql-c/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 09:54:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Visual C#]]></category>

		<guid isPermaLink="false">http://wiki.nisi.ro/?p=3</guid>
		<description><![CDATA[Startup for LINQ to SQL with C# This walkthrough requires the following: This walkthrough uses a dedicated folder (&#8220;c:\linqtest6&#8243;) to hold files. Create this folder before you begin the walkthrough. The Northwind sample database. If you do not have this database on your development computer, you can download it from the Microsoft download site. For [...]]]></description>
			<content:encoded><![CDATA[<p>Startup for LINQ to SQL with C#</p>
<p>This walkthrough requires the following:</p>
<p>This walkthrough uses a dedicated folder (&#8220;c:\linqtest6&#8243;) to hold files. Create this folder before you begin the walkthrough.</p>
<p>The Northwind sample database.<br />
</p>
<p>If you do not have this database on your development computer, you can download it from the Microsoft download site. For instructions, see Downloading Sample Databases (LINQ to SQL). After you have downloaded the database, copy the northwnd.mdf file to the c:\linqtest6 folder.</p>
<p>A C# code file generated from the Northwind database.</p>
<p>You can generate this file by using either the Object Relational Designer or the SQLMetal tool. This walkthrough was written by using the SQLMetal tool with the following command line:</p>
<p>sqlmetal /code:&#8221;c:\linqtest6\northwind.cs&#8221; /language:csharp &#8220;C:\linqtest6\northwnd.mdf&#8221; /pluralize</p>
<p>For more information, see Code Generation Tool (SqlMetal.exe).<br />
Overview</p>
<p>This walkthrough consists of six main tasks:</p>
<p>Creating the LINQ to SQL solution in Visual Studio.</p>
<p>Adding the database code file to the project.</p>
<p>Creating a new customer object.</p>
<p>Modifying the contact name of a customer.</p>
<p>Deleting an order.</p>
<p>Submitting these changes to the Northwind database.<br />
Creating a LINQ to SQL Solution</p>
<p>In this first task, you create a Visual Studio solution that contains the necessary references to build and run a LINQ to SQL project.<br />
To create a LINQ to SQL solution</p>
<p>On the Visual Studio File menu, point to New, and then click Project.</p>
<p>In the Project types pane in the New Project dialog box, click Visual C#.</p>
<p>In the Templates pane, click Console Application.</p>
<p>In the Name box, type LinqDataManipulationApp.</p>
<p>In the Location box, verify where you want to store your project files.</p>
<p>Click OK.<br />
Adding LINQ References and Directives</p>
<p>This walkthrough uses assemblies that might not be installed by default in your project. If System.Data.Linq is not listed as a reference in your project, add it, as explained in the following steps:<br />
To add System.Data.Linq</p>
<p>In Solution Explorer, right-click References, and then click Add Reference.</p>
<p>In the Add Reference dialog box, click .NET, click the System.Data.Linq assembly, and then click OK.</p>
<p>The assembly is added to the project.</p>
<p>Add the following directives at the top of Program.cs:<br />
C#</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">Data</span>.<span class="me1">Linq</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">using</span> <span class="kw5">System</span>.<span class="me1">Data</span>.<span class="me1">Linq</span>.<span class="me1">Mapping</span>;</div>
</li>
</ol>
</div>
<p>Adding the Northwind Code File to the Project</p>
<p>These steps assume that you have used the SQLMetal tool to generate a code file from the Northwind sample database. For more information, see the Prerequisites section earlier in this walkthrough.<br />
To add the northwind code file to the project</p>
<p>On the Project menu, click Add Existing Item.</p>
<p>In the Add Existing Item dialog box, navigate to c:\linqtest6\northwind.cs, and then click Add.</p>
<p>The northwind.cs file is added to the project.<br />
Setting Up the Database Connection</p>
<p>First, test your connection to the database. Note especially that the database, Northwnd, has no i character. If you generate errors in the next steps, review the northwind.cs file to determine how the Northwind partial class is spelled.<br />
To set up and test the database connection</p>
<p>Type or paste the following code into the Main method in the Program class:<br />
C#</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Use the following connection string. </span></div>
</li>
<li class="li1">
<div class="de1">Northwnd db = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Northwnd<span class="br0">&#40;</span><span class="st0">@&#8221;c:\linqtest6\northwnd.mdf&quot;</span><span class="br0">&#41;</span>; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">// Keep the console window open after activity stops. </span></div>
</li>
<li class="li1">
<div class="de1">Console.<span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Press F5 to test the application at this point.</p>
<p>A Console window opens.</p>
<p>You can close the application by pressing Enter in the Console window, or by clicking Stop Debugging on the Visual Studio Debug menu.<br />
Creating a New Entity</p>
<p>Creating a new entity is straightforward. You can create objects (such as Customer) by using the new keyword.</p>
<p>In this and the following sections, you are making changes only to the local cache. No changes are sent to the database until you call SubmitChanges toward the end of this walkthrough.<br />
To add a new Customer entity object</p>
<p>Create a new Customer by adding the following code before Console.ReadLine(); in the Main method:<br />
C#</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Create the new Customer object. </span></div>
</li>
<li class="li1">
<div class="de1">Customer newCust = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span class="kw3">new</span></a> Customer<span class="br0">&#40;</span><span class="br0">&#41;</span>; </div>
</li>
<li class="li1">
<div class="de1">newCust.<span class="me1">CompanyName</span> = <span class="st0">&quot;AdventureWorks Cafe&quot;</span>; </div>
</li>
<li class="li2">
<div class="de2">newCust.<span class="me1">CustomerID</span> = <span class="st0">&quot;ADVCA&quot;</span>; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Add the customer to the Customers table. </span></div>
</li>
<li class="li1">
<div class="de1">db.<span class="me1">Customers</span>.<span class="me1">InsertOnSubmit</span><span class="br0">&#40;</span>newCust<span class="br0">&#41;</span>; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">Console.<span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es0">\n</span>Customers matching CA before insert&quot;</span><span class="br0">&#41;</span>; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">foreach</span> <span class="br0">&#40;</span>var c <span class="kw1">in</span> db.<span class="me1">Customers</span>.<span class="me1">Where</span><span class="br0">&#40;</span>cust =&gt; cust.<span class="me1">CustomerID</span>.<span class="me1">Contains</span><span class="br0">&#40;</span><span class="st0">&quot;CA&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">Console.<span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="st0">&quot;{0}, {1}, {2}&quot;</span>, </div>
</li>
<li class="li2">
<div class="de2">c.<span class="me1">CustomerID</span>, c.<span class="me1">CompanyName</span>, c.<span class="me1">Orders</span>.<span class="me1">Count</span><span class="br0">&#41;</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Press F5 to debug the solution.</p>
<p>Press Enter in the Console window to stop debugging and continue the walkthrough.<br />
Updating an Entity</p>
<p>In the following steps, you will retrieve a Customer object and modify one of its properties.<br />
To change the name of a Customer</p>
<p>Add the following code above Console.ReadLine();:<br />
C#</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Query for specific customer. </span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// First() returns one object rather than a collection. </span></div>
</li>
<li class="li1">
<div class="de1">var existingCust = </div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#40;</span>from c <span class="kw1">in</span> db.<span class="me1">Customers</span> </div>
</li>
<li class="li1">
<div class="de1">where c.<span class="me1">CustomerID</span> == <span class="st0">&quot;ALFKI&quot;</span> </div>
</li>
<li class="li1">
<div class="de1">select c<span class="br0">&#41;</span> </div>
</li>
<li class="li1">
<div class="de1">.<span class="me1">First</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">// Change the contact name of the customer. </span></div>
</li>
<li class="li1">
<div class="de1">existingCust.<span class="me1">ContactName</span> = <span class="st0">&quot;New Contact&quot;</span>;</div>
</li>
</ol>
</div>
<p>Deleting an Entity</p>
<p>Using the same customer object, you can delete the first order.</p>
<p>The following code demonstrates how to sever relationships between rows, and how to delete a row from the database. Add the following code before Console.ReadLine to see how objects can be deleted:<br />
To delete a row</p>
<p>Add the following code just above Console.ReadLine();:<br />
C#</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Access the first element in the Orders collection. </span></div>
</li>
<li class="li1">
<div class="de1">Order ord0 = existingCust.<span class="me1">Orders</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">// Access the first element in the OrderDetails collection. </span></div>
</li>
<li class="li1">
<div class="de1">OrderDetail detail0 = ord0.<span class="me1">OrderDetails</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Display the order to be deleted. </span></div>
</li>
<li class="li1">
<div class="de1">Console.<span class="me1">WriteLine</span> </div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#40;</span><span class="st0">&quot;The Order Detail to be deleted is: OrderID = {0}, ProductID = {1}&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">detail0.<span class="me1">OrderID</span>, detail0.<span class="me1">ProductID</span><span class="br0">&#41;</span>; &nbsp; &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Mark the Order Detail row for deletion from the database.</span></div>
</li>
</ol>
</div>
<p>Submitting Changes to the Database</p>
<p>The final step required for creating, updating, and deleting objects, is to actually submit the changes to the database. Without this step, your changes are only local and will not appear in query results.<br />
To submit changes to the database</p>
<p>Insert the following code just above Console.ReadLine:<br />
C#</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">db.<span class="me1">SubmitChanges</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Insert the following code (after SubmitChanges) to show the before and after effects of submitting the changes:<br />
C#</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">Console.<span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es0">\n</span>Customers matching CA after update&quot;</span><span class="br0">&#41;</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">foreach</span> <span class="br0">&#40;</span>var c <span class="kw1">in</span> db.<span class="me1">Customers</span>.<span class="me1">Where</span><span class="br0">&#40;</span>cust =&gt; </div>
</li>
<li class="li1">
<div class="de1">cust.<span class="me1">CustomerID</span>.<span class="me1">Contains</span><span class="br0">&#40;</span><span class="st0">&quot;CA&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> </div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">Console.<span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="st0">&quot;{0}, {1}, {2}&quot;</span>, </div>
</li>
<li class="li1">
<div class="de1">c.<span class="me1">CustomerID</span>, c.<span class="me1">CompanyName</span>, c.<span class="me1">Orders</span>.<span class="me1">Count</span><span class="br0">&#41;</span>; </div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Press F5 to debug the solution.</p>
<p>Press Enter in the Console window to close the application.</p>
]]></content:encoded>
			<wfw:commentRss>http://wiki.nisi.ro/2008/03/starting-with-linq-to-sql-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

