<?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>Yılmaz Yavuz &#187; Linq</title>
	<atom:link href="http://www.yilmazyavuz.com/yyblog/index.php/tag/linq/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yilmazyavuz.com/yyblog</link>
	<description>yazılım üzerine taze taze</description>
	<lastBuildDate>Thu, 26 Aug 2010 10:58:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PLINQO &#8211; Professional LINQ to Objects</title>
		<link>http://www.yilmazyavuz.com/yyblog/index.php/2009/02/plinqo-professional-linq-to-objects/</link>
		<comments>http://www.yilmazyavuz.com/yyblog/index.php/2009/02/plinqo-professional-linq-to-objects/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 23:37:56 +0000</pubDate>
		<dc:creator>Yılmaz Yavuz</dc:creator>
				<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[Linq]]></category>
		<category><![CDATA[CodeSmith]]></category>
		<category><![CDATA[plinqo]]></category>

		<guid isPermaLink="false">http://www.yilmazyavuz.com/yyblog/?p=164</guid>
		<description><![CDATA[<p>PLINQO Codesmith tarafından geliştirilmiş bir codesmith template idir. Standart Visual Studio 2008 Linq to SqlClasses template i tarafından çıkartılan class ları özelleştirmek sıkıntılı olduğundan, daha özelleştirilebilir bir Linq to Sql veri katmanı oluşturmak için çıkmıştır.</p>
<p>Codesmith in Visual Studio ile entegre çalıştığını da düşünürsek, bu template ile birlikte çok kolay bir şekilde Dbml ve ona bağlı classları oluşturabilmekteyiz. Aşağıda bir projeye eklenmiş Plinqo template inin sağ tık menüsünün nasıl olduğunu görebilirsiniz.</p>
<p class="wp-caption-text">Visual Studio 2008 de projeye eklendiğinde görünen menü.</p>
<p>Hergün gelişen bu template ile ilgili ayrıntılı bilgiyi şu <span style="color:#777"> . . . &#8594; Yazının Devamını Oku: <a href="http://www.yilmazyavuz.com/yyblog/index.php/2009/02/plinqo-professional-linq-to-objects/">PLINQO &#8211; Professional LINQ to Objects</a></span>]]></description>
			<content:encoded><![CDATA[<p>PLINQO Codesmith tarafından geliştirilmiş bir codesmith template idir. Standart Visual Studio 2008 Linq to SqlClasses template i tarafından çıkartılan class ları özelleştirmek sıkıntılı olduğundan, daha özelleştirilebilir bir Linq to Sql veri katmanı oluşturmak için çıkmıştır.</p>
<p>Codesmith in Visual Studio ile entegre çalıştığını da düşünürsek, bu template ile birlikte çok kolay bir şekilde Dbml ve ona bağlı classları oluşturabilmekteyiz. Aşağıda bir projeye eklenmiş Plinqo template inin sağ tık menüsünün nasıl olduğunu görebilirsiniz.</p>
<div id="attachment_165" class="wp-caption alignnone" style="width: 295px"><img class="size-full wp-image-165" title="PlinqO" src="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/plinqo.jpg" alt="Visual Studio 2008 de projeye eklendiğinde görünen menü." width="285" height="501" /><p class="wp-caption-text">Visual Studio 2008 de projeye eklendiğinde görünen menü.</p></div>
<p>Hergün gelişen bu template ile ilgili ayrıntılı bilgiyi şu adreslerden edinebilirsiniz:</p>
<p><a href="http://www.codeproject.com/KB/linq/PLINQO.aspx" target="_blank">http://www.codeproject.com/KB/linq/PLINQO.aspx</a></p>
<p><a href="http://code.google.com/p/codesmith/">http://code.google.com/p/codesmith/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yilmazyavuz.com/yyblog/index.php/2009/02/plinqo-professional-linq-to-objects/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XtraGridControl ve Linq EntitySet Refresh problemi</title>
		<link>http://www.yilmazyavuz.com/yyblog/index.php/2009/02/xtragridcontrol-ve-linq-entityset-refresh-problemi/</link>
		<comments>http://www.yilmazyavuz.com/yyblog/index.php/2009/02/xtragridcontrol-ve-linq-entityset-refresh-problemi/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 22:58:18 +0000</pubDate>
		<dc:creator>Yılmaz Yavuz</dc:creator>
				<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[Devexpress]]></category>
		<category><![CDATA[Linq]]></category>
		<category><![CDATA[datasource]]></category>
		<category><![CDATA[entityset]]></category>
		<category><![CDATA[refresh]]></category>
		<category><![CDATA[xtragridcontrol]]></category>

		<guid isPermaLink="false">http://www.yilmazyavuz.com/yyblog/?p=160</guid>
		<description><![CDATA[<p>Devexpress 8.2.6 sürümünde XtraGridControl ile yaşadığım refresh problemi şu şekilde gerçekleşti : EntitySet i datasource olarak verdikten sonra, arka planda eklediğim herhangi bir entity grid üzerinde görünmemekteydi. Yani sadece grid üzerinden yaptığım değişiklikler görünüyor, arkaplandaki değişiklikler EntitySet nesnesi üzerinde debug anında görünmesine rağmen, grid üzerinde görünmüyordu.
Problemi teşhis ettikten sonra, ilk olarak grid nesnemin üzerindeki RefreshDataSource() methodunu denedim ancak; problemi gidermedi.
Sonrasında grid üzerindeki DataSource property sini tekrar aynı EntitySet nesnesini göndererek set ettim ve bir umutla çalıştırdım. Herhangi bir değişiklik yoktu.</p>
<p>Çözüm:</p>
<p>EntitySet&#60;T&#62; nesnemin methodlarına gözatarken GetNewBindingList() methodu dikkatimi çekti. Sorunun çözümü olduğunu düşünerek , hemen denedim ve bingo, sorun giderilmişti.</p>
<p>Niçin böyle bir methoda gerek duyulduğunu henüz anlamış değilim ancak anladığımda burada <span style="color:#777"> . . . &#8594; Yazının Devamını Oku: <a href="http://www.yilmazyavuz.com/yyblog/index.php/2009/02/xtragridcontrol-ve-linq-entityset-refresh-problemi/">XtraGridControl ve Linq EntitySet Refresh problemi</a></span>]]></description>
			<content:encoded><![CDATA[<p>Devexpress 8.2.6 sürümünde XtraGridControl ile yaşadığım refresh problemi şu şekilde gerçekleşti : EntitySet i datasource olarak verdikten sonra, arka planda eklediğim herhangi bir entity grid üzerinde görünmemekteydi. Yani sadece grid üzerinden yaptığım değişiklikler görünüyor, arkaplandaki değişiklikler EntitySet nesnesi üzerinde debug anında görünmesine rağmen, grid üzerinde görünmüyordu.<br />
Problemi teşhis ettikten sonra, ilk olarak grid nesnemin üzerindeki RefreshDataSource() methodunu denedim ancak; problemi gidermedi.<br />
Sonrasında grid üzerindeki DataSource property sini tekrar aynı EntitySet nesnesini göndererek set ettim ve bir umutla çalıştırdım. Herhangi bir değişiklik yoktu.</p>
<p><strong>Çözüm:</strong></p>
<p>EntitySet&lt;T&gt; nesnemin methodlarına gözatarken GetNewBindingList() methodu dikkatimi çekti. Sorunun çözümü olduğunu düşünerek , hemen denedim ve bingo, sorun giderilmişti.</p>
<p>Niçin böyle bir methoda gerek duyulduğunu henüz anlamış değilim ancak anladığımda burada yayımlıyor olacağım.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yilmazyavuz.com/yyblog/index.php/2009/02/xtragridcontrol-ve-linq-entityset-refresh-problemi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Resharper .Net yazılımcısının yoldaşı</title>
		<link>http://www.yilmazyavuz.com/yyblog/index.php/2008/11/resharper-net-yazilimcisinin-yoldasi/</link>
		<comments>http://www.yilmazyavuz.com/yyblog/index.php/2008/11/resharper-net-yazilimcisinin-yoldasi/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 22:34:41 +0000</pubDate>
		<dc:creator>Yılmaz Yavuz</dc:creator>
				<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[Linq]]></category>
		<category><![CDATA[Extension Methods]]></category>
		<category><![CDATA[JetBrains]]></category>
		<category><![CDATA[Resharper]]></category>

		<guid isPermaLink="false">http://www.yilmazyavuz.com/yyblog/?p=65</guid>
		<description><![CDATA[<p></p>
<p>Resharper birçok kolaylaştırıcı özelliği (Anlık debugging,Hızlı Refactor,Gelişmiş snippet sistemi, Geliştirilmiş Intellisense) bulunan bir Visual Studio add-in&#8217;idir.
Deneme sürümünü resmi web sitesinden edinebilir. Visual Studio ile kod yazmayı daha zevkli <span style="color:#777"> . . . &#8594; Yazının Devamını Oku: <a href="http://www.yilmazyavuz.com/yyblog/index.php/2008/11/resharper-net-yazilimcisinin-yoldasi/">Resharper .Net yazılımcısının yoldaşı</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/resharper.jpg"><img class="alignnone size-full wp-image-66" title="resharper" src="http://www.yilmazyavuz.com/yyblog/wp-content/uploads/resharper.jpg" alt="" width="396" height="199" /></a></p>
<p>Resharper birçok kolaylaştırıcı özelliği (Anlık debugging,Hızlı Refactor,Gelişmiş snippet sistemi, Geliştirilmiş Intellisense) bulunan bir Visual Studio add-in&#8217;idir.<br />
Deneme sürümünü <a href="http://www.jetbrains.com/resharper/index.html">resmi web sitesinden</a> edinebilir. Visual Studio ile kod yazmayı daha zevkli hale getirebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yilmazyavuz.com/yyblog/index.php/2008/11/resharper-net-yazilimcisinin-yoldasi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linq ile işe yarar birşeyler&#8230;</title>
		<link>http://www.yilmazyavuz.com/yyblog/index.php/2007/12/linq-ile-ise-yarar-birseyler/</link>
		<comments>http://www.yilmazyavuz.com/yyblog/index.php/2007/12/linq-ile-ise-yarar-birseyler/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 19:20:58 +0000</pubDate>
		<dc:creator>Yılmaz Yavuz</dc:creator>
				<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[Linq]]></category>
		<category><![CDATA[Extension Methods]]></category>

		<guid isPermaLink="false">http://www.yilmazyavuz.com/PermaLink,guid,d8dad654-2344-424e-8693-682488017c5f.aspx</guid>
		<description><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
&#160;C#
3.5 ile gelen yeni özelliklerden birtaneside Linq ve Lambda bi kaç gün önce yeni projemde
kullanmaya başladığım bir kaç özelliğinden işe yarar bulduğum yanlarını yazıyım istedim.</p>
<p>Bir formunuz(Form) ve içinde birden çok buton var ve siz sadece buton yazısı(Button.Text)
içinde Ekle geçenleri bulmak istiyorsunuz lambda olmadan bunu şu şekilde yapabiliyorduk
:

</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; List&#60;Button&#62;
bulunanlar = new List&#60;Button&#62;();

</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; foreach (Control
c in this.Controls)

</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {

</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if (c is Button)

</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {

</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Button
btn = (Button)c;

</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; if(btn.Text.Contains(&#8220;Ekle&#8221;))

</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; bulunanlar.Add(btn);

</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }

</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }


</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
&#160;
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
Linq
ile gelen extension methodları kullanarak şu şekilde daha az yazarak&#160;yapabiliyoruz..

</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
var linqIleBulunanlar = from
btn in this.Controls.OfType&#60;Button&#62;()
where btn.Text.Contains(&#8220;Ekle&#8221;)
select btn;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; List&#60;Button&#62;
bulunanlar = linqIleBulunanlar.ToList();


</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
Burada
var değişken tipi Object gibi herşeyi barındırabilen bir veritipi herhangi <span style="color:#777"> . . . &#8594; Yazının Devamını Oku: <a href="http://www.yilmazyavuz.com/yyblog/index.php/2007/12/linq-ile-ise-yarar-birseyler/">Linq ile işe yarar birşeyler&#8230;</a></span>]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
<span style="font-size: 10pt; color: rgb(0, 51, 0); font-family: 'Verdana','sans-serif';">&nbsp;C#<br />
3.5 ile gelen yeni özelliklerden birtaneside Linq ve Lambda bi kaç gün önce yeni projemde<br />
kullanmaya başladığım bir kaç özelliğinden işe yarar bulduğum yanlarını yazıyım istedim.</p>
<p>Bir formunuz(Form) ve içinde birden çok buton var ve siz sadece buton yazısı(Button.Text)<br />
içinde Ekle geçenleri bulmak istiyorsunuz lambda olmadan bunu şu şekilde yapabiliyorduk<br />
:<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>List&lt;Button&gt;<br />
bulunanlar </span><span style="font-size: 8.5pt; color: red; font-family: 'Courier New';">=</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> </span><span style="font-size: 8.5pt; color: blue; font-family: 'Courier New';">new</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> List&lt;Button&gt;();<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 8.5pt; color: blue; font-family: 'Courier New';">foreach</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> (Control<br />
c </span><span style="font-size: 8.5pt; color: blue; font-family: 'Courier New';">in</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> </span><span style="font-size: 8.5pt; color: blue; font-family: 'Courier New';">this</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';">.Controls)<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"><span style="">&nbsp;</span><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 8.5pt; color: blue; font-family: 'Courier New';">if</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> (c </span><span style="font-size: 8.5pt; color: blue; font-family: 'Courier New';">is</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> Button)<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Button<br />
btn </span><span style="font-size: 8.5pt; color: red; font-family: 'Courier New';">=</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> (Button)c;<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 8.5pt; color: blue; font-family: 'Courier New';">if</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';">(btn.Text.Contains(</span><span style="background: rgb(228, 228, 228) none repeat scroll 0%; font-size: 8.5pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(102, 102, 102); font-family: 'Courier New';">&#8220;Ekle&#8221;</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';">))<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>bulunanlar.Add(btn);<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span><span style="font-size: 10pt; color: rgb(0, 51, 0); font-family: 'Courier New';"><br />
<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
<span style="font-size: 10pt; color: rgb(0, 51, 0); font-family: 'Verdana','sans-serif';"></span>&nbsp;
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
<span style="font-size: 10pt; color: rgb(0, 51, 0); font-family: 'Verdana','sans-serif';">Linq<br />
ile gelen extension methodları kullanarak şu şekilde daha az yazarak&nbsp;yapabiliyoruz..<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
var linqIleBulunanlar </span><span style="font-size: 8.5pt; color: red; font-family: 'Courier New';">=</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> from<br />
btn </span><span style="font-size: 8.5pt; color: blue; font-family: 'Courier New';">in</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> </span><span style="font-size: 8.5pt; color: blue; font-family: 'Courier New';">this</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';">.Controls.OfType&lt;Button&gt;()<br />
where btn.Text.Contains(</span><span style="background: rgb(228, 228, 228) none repeat scroll 0%; font-size: 8.5pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(102, 102, 102); font-family: 'Courier New';">&#8220;Ekle&#8221;</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';">)<br />
select btn;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List&lt;Button&gt;<br />
bulunanlar </span><span style="font-size: 8.5pt; color: red; font-family: 'Courier New';">=</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> linqIleBulunanlar.ToList();</span><span style="font-size: 10pt; color: rgb(0, 51, 0); font-family: 'Verdana','sans-serif';"><br />
<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
<span style="font-size: 10pt; color: rgb(0, 51, 0); font-family: 'Verdana','sans-serif';">Burada<br />
var değişken tipi Object gibi herşeyi barındırabilen bir veritipi herhangi birşeye<br />
dönüşüm yapmadan direk methodlarını ve&nbsp;propertylerini&nbsp;kullanabiliyoruz aslında<br />
burdaki var IEnumerable&lt;Button&gt; tipine otomatik olarak dönüşüyor ve böylece&nbsp;ToList()<br />
methodunu Object de olduğu gibi dönüşüm yapmadan kullanabiliyoruz.<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
<span style="font-size: 10pt; color: rgb(0, 51, 0); font-family: 'Verdana','sans-serif';">aynı&nbsp;işlemi<br />
var yerine Object kullanarakta şu şekilde&nbsp;yapabilirdik :<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-size: 8.5pt; color: blue; font-family: 'Courier New';">object</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> linqIleBulunanlar </span><span style="font-size: 8.5pt; color: red; font-family: 'Courier New';">=</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> from<br />
btn </span><span style="font-size: 8.5pt; color: blue; font-family: 'Courier New';">in</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> </span><span style="font-size: 8.5pt; color: blue; font-family: 'Courier New';">this</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';">.Controls.OfType&lt;Button&gt;()<br />
where btn.Text.Contains(</span><span style="background: rgb(228, 228, 228) none repeat scroll 0%; font-size: 8.5pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(102, 102, 102); font-family: 'Courier New';">&#8220;Ekle&#8221;</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';">)<br />
select btn;<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal;">
<span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>List&lt;Button&gt;<br />
bulunanlar </span><span style="font-size: 8.5pt; color: red; font-family: 'Courier New';">=</span><span style="font-size: 8.5pt; color: black; font-family: 'Courier New';"> ((IEnumerable&lt;Button&gt;)linqIleBulunanlar).ToList();</span><span style="font-size: 10pt; color: rgb(0, 51, 0); font-family: 'Courier New';"><br />
<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
<span style="font-size: 10pt; color: black; font-family: 'Verdana','sans-serif';"></span>&nbsp;
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
<span style="font-size: 10pt; color: black; font-family: 'Verdana','sans-serif';">Ancak<br />
bu şekilde yaptığımızda bazı durumlarda Object not cast&#8230; hatası alabiliyoruz. var<br />
tipi bizi bu dönüşümlerden(cast) den kurtaran bir c sharp 3.5 yeniliği. Şuan için<br />
bildiğim tek eksi yönü object gibi methodlara parametre olarak gönderilemiyor ki biraz<br />
düşündüğümüzde aslında mantıklı.</span><span style="font-size: 10pt; color: rgb(0, 51, 0); font-family: 'Verdana','sans-serif';"><br />
<o:p></o:p><br />
</span>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt; line-height: normal;">
<span style="font-size: 10pt; color: black; font-family: 'Verdana','sans-serif';">var<br />
ın ne olduğunu anladıktan sonra gelelim Linq sorgusuna sorguya &#8220;from&#8221; ile başlıyoruz<br />
ve sonrasında sorgu içerisinde kullanacağımız değişken ismini yazıyoruz(btn) ardından<br />
&#8220;in&#8221; yazıp içinde arama yapacağımız List Array yada IEnumerable ı yazıyoruz. Burda<br />
kullandığımız list this.Controls.OfType&lt;Button&gt;() , this.Controls tanıdık gelmesine<br />
rağmen sonundaki OfType&lt;Button&gt;() methoduna çoğumuz yabancıyız bu yine C# 3.5<br />
ile gelen Extention Method kavramıyla yapılmış bir ek method ve yaptığı işlem çalıştığı<br />
list içinde generic parametre ile aldığı tipteki elemanları döndüren bir method burdaki<br />
kullanma amacımız Formdaki kontroller arasından sadece Button olanların arasında arama<br />
yapmak (içinde &#8220;Ekle&#8221; geçen bir label in gelmesini istemiyoruz) daha sonra &#8220;where&#8221;<br />
yazıp ardından arama kriterimizi giriyoruz bu kriter bildiğimiz&nbsp;if içinde yazdığımız<br />
kriterler gibi bool döndürmesi gerekiyor btn.Text.Contains(&#8221;Ekle&#8221;) ile Text property<br />
sinin&nbsp;içinde &#8220;Ekle&#8221; geçmesi gerektiğini belirtiyoruz ve son olarak &#8220;select&#8221; ardından<br />
listesini döndürmek istediğimiz şeyi yazıyoruz biz burda Button ları döndürmek istediğimiz<br />
için btn yazdık ancak sadece Buttonların Name ini döndüren bir string dizisi istiyorsak<br />
btn.Name de yazabilirdik.</span><span style="font-size: 10pt; color: rgb(0, 51, 0); font-family: 'Verdana','sans-serif';"><br />
<o:p></o:p><br />
</span>
</p>
<p>
&nbsp;
</p>
<p><img width="0" height="0" src="http://www.yilmazyavuz.com/aggbug.ashx?id=d8dad654-2344-424e-8693-682488017c5f" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yilmazyavuz.com/yyblog/index.php/2007/12/linq-ile-ise-yarar-birseyler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
