pascalabcnet/PABCNetHelp/LangGuide/FuncProgramming/Files/Join.html

24 lines
2.1 KiB
HTML

<html><head><object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="Join">
</object><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><title></title><link rel="StyleSheet" href="../../../default.css"></head>
<body>
<H1>Ìåòîäû Join</H1><h2>Îïèñàíèå ìåòîäîâ</h2><p>Ìåòîäû ïðèâåäåíû äëÿ ïîñëåäîâàòåëüíîñòè <code><b>sequence of</b> T</code>.</p><table>
<tr><td>
<code><b>function </b>Join&lt;TInner,Key,Res&gt;(inner: <b>sequence of</b> TInner; outerKeySelector: T-&gt;Key; innerKeySelector: TInner-&gt;TKey; resultSelector: (T,TInner)-&gt;Res): <b>sequence of</b> Res;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Îáúåäèíÿåò äâå ïîñëåäîâàòåëüíîñòè íà îñíîâå ñîïîñòàâëåíèÿ êëþ÷åé â òðåòüþ ïîñëåäîâàòåëüíîñòü. Ôóíêöèÿ resultSelector çàäà¸ò ïðîåêöèþ ýëåìåíòîâ äâóõ ïîñëåäîâàòåëüíîñòåé ñ îäèíàêîâûìè çíà÷åíèÿìè êëþ÷à â ýëåìåíò òðåòüåé ïîñëåäîâàòåëüíîñòè.
</td></tr>
<tr><td>
<code><b>function </b>Join&lt;TInner,Key,Res&gt;(inner: <b>sequence of</b> TInner; outerKeySelector: T-&gt;Key; innerKeySelector: TInner-&gt;TKey; resultSelector: (T,TInner)-&gt;Res; comparer: System.Collections.Generic.IEqualityComparer&lt;Key&gt;): <b>sequence of</b> Res;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Îáúåäèíÿåò äâå ïîñëåäîâàòåëüíîñòè íà îñíîâå ñîïîñòàâëåíèÿ êëþ÷åé â òðåòüþ ïîñëåäîâàòåëüíîñòü. Ôóíêöèÿ resultSelector çàäà¸ò ïðîåêöèþ ýëåìåíòîâ äâóõ ïîñëåäîâàòåëüíîñòåé ñ îäèíàêîâûìè çíà÷åíèÿìè êëþ÷à â ýëåìåíò òðåòüåé ïîñëåäîâàòåëüíîñòè. Äëÿ ñðàâíåíèÿ êëþ÷åé èñïîëüçóåòñÿ êîìïàðàòîð comparer.
</td></tr>
</table>
<h2>Ïðèìåð </h2><blockquote><code><strong>begin</strong><br>&nbsp; <strong>var</strong>
people := Arr((1,'Èâàíîâ'),(2,'Ïîïîâ'),(3,'Ñèäîðîâ'));<br>&nbsp; <strong>var</strong>
subjects := Arr((1,'Èñòîðèÿ'),(1,'Ìàòåìàòèêà'),(2,'Èñòîðèÿ')<br>&nbsp;&nbsp;&nbsp;
,(3,'Ìàòåìàòèêà'),(1,'Ðóññêèé'),(2,'Ôèçèêà'));<br><br>&nbsp;
people.Join(subjects,p-&gt;p[0],s-&gt;s[0],(p,s)-&gt;(p[1],s[1])).Println(NewLine);<br>
<strong>end</strong>.<br><br>Âûâîä:<br>(Èâàíîâ,Èñòîðèÿ)<br>
(Èâàíîâ,Ìàòåìàòèêà)<br>(Èâàíîâ,Ðóññêèé)<br>(Ïîïîâ,Èñòîðèÿ)<br>(Ïîïîâ,Ôèçèêà)<br>
(Ñèäîðîâ,Ìàòåìàòèêà)</code></blockquote>
</body>