<?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>Muráti Ákos honlapja &#187; LINQ</title>
	<atom:link href="http://murati.hu/tag/linq/feed/" rel="self" type="application/rss+xml" />
	<link>http://murati.hu</link>
	<description>Muráti Ákos személyes és szakmai oldala</description>
	<lastBuildDate>Wed, 11 Aug 2010 05:08:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Élkeresés GLEE Gráfokban LINQ-val</title>
		<link>http://murati.hu/c6_oracle/elkereses-glee-grafokban-linq-val/</link>
		<comments>http://murati.hu/c6_oracle/elkereses-glee-grafokban-linq-val/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 08:15:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Oktatás]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[GLEE]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://murati.hu/?p=404</guid>
		<description><![CDATA[Ahogy azt már korábbi bejegyzésemben említettem a Microsoft GleeGraph objektum a Node-októl eltérően alapból nem rendelkezik élkeresési funkciókkal, de élek még saját azonosítókkal sem rendelkeznek. Amennyiben egy élet szeretnénk kikeresni, mert mondjuk egy Property-jét vagy UserData-ját szeretnénk módosítani, saját eljárást kell írnunk ehhez. A .NET 3.5-től a fejlesztők rendelkezésére áll egy rendkívül hatékony ezsköz a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a rel="lightbox[]" href="http://murati.hu/gallery/microsoft/linq.gif"><img class="ngg-singlepic ngg-left" src="http://murati.hu/gallery/microsoft/thumbs/thumbs_linq.gif" alt="LINQ in action" /></a>Ahogy azt már korábbi bejegyzésemben említettem a Microsoft GleeGraph objektum a Node-októl eltérően alapból nem rendelkezik élkeresési funkciókkal, de élek még saját azonosítókkal sem rendelkeznek. Amennyiben egy élet szeretnénk kikeresni, mert mondjuk egy Property-jét vagy UserData-ját szeretnénk módosítani, saját eljárást kell írnunk ehhez. A .NET 3.5-től a fejlesztők rendelkezésére áll egy rendkívül hatékony ezsköz a LINQ (Language Integrated Query) melyek segítségével SQL szerű lekérdezéseket futtathatunk szinte tetszőleges Objektum kollekción (LINQ to Object) vagy adatbázis forrásokon (LINQ to SQL). Miért ne írhatnánk LINQ query-ket élhalmazokra.<span id="more-404"></span></p>
<h4 style="text-align: justify;">A LINQ-ról általában</h4>
<p style="text-align: justify;">A LINQ query-k kísértetiesen hasonlítanak az SQL lekérdezésekre, különbség csupán annyi, hogy a select kulcsszó és maga a kiválasztandó objektum deklarációja hátra lett csapva.</p>
<pre>var halmaz = from sor in Kollekcio
where sor.property  == "valami" &amp;&amp; sor.propery2=="valami2"
select sor;</pre>
<p style="text-align: justify;">Az így kapott eredményhalmaz is szintén egy kollekció lesz függetlenül attól, hogy hány elemet tartalmaz, melyeken használhatóak a kollekcióknár már jól megszokott First(), Last(), Next(), OrderBy(), Sum(),  Average(), Contains() és még több száz generikus listaeljárás általunk definiált delegate-kkel de akár a jó öreg foreach -et is használhatjuk.</p>
<pre>SajatObjektum o = halmaz.First&lt;SajatOjektum&gt;();</pre>
<h4>Él keresése GleeGraph-ban</h4>
<p><a rel="lightbox[]" href="http://murati.hu/gallery/ms_agl/glee_edge finder.png"><img class="ngg-singlepic ngg-right" src="http://murati.hu/gallery/ms_agl/thumbs/thumbs_glee_edge finder.png" alt="GLLE élkeresés Label Frissítéssel" /></a>Adott egy GleeGraph g gráfobjektum, melynek irányított éleit a g.Edges Edge típusú Generikus Lista tartalmazza és meg szeretném keresni az összes valamilyen A és valamilyen B tulajdonságú node között futó élet. Mivel minden egyes referenciaként hivatkozik azokhoz a csomópontokhoz (SourceNode és TargetNode) melyekhez kapcsolódik a megoldás LINQ-ban az alábbi C# kódot eredményezi, ha a Node-okat épp azonosítójuk alapján határozzuk meg:</p>
<pre>var vk = from e in g.Edges
where e.SourceNode.Attr.Id =="A" &amp;&amp;
e.TargetNode.Attr.Id == "B"
select e;</pre>
<p>vagy irányítatlan esetben:</p>
<pre>var vk = from e in g.Edges
where (e.SourceNode.Attr.Id =="A" &amp;&amp; e.TargetNode.Attr.Id == "B") ||
(e.SourceNode.Attr.Id =="B" &amp;&amp; e.TargetNode.Attr.Id == "A")
select e;</pre>
<p>Egyszerű, mint az egyszeregy. Ha többet szeretnél még tudni a LINQ-ról, klikk ide: <a href="http://msdn.microsoft.com/en-us/netframework/aa904594.aspx" target="_blank">LINQ az MSDN-en</a></p>
]]></content:encoded>
			<wfw:commentRss>http://murati.hu/c6_oracle/elkereses-glee-grafokban-linq-val/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

