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

24 lines
2.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>