本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

Enumerable.Join<TOuter, TInner, TKey, TResult> 方法 (IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter, TKey>, Func<TInner, TKey>, Func<TOuter, TInner, TResult>, IEqualityComparer<TKey>)

 

基于匹配键对两个序列的元素关联。 指定 IEqualityComparer<T> 用来对键进行比较。

命名空间:   System.Linq
程序集:  System.Core(位于 System.Core.dll)

public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(
	this IEnumerable<TOuter> outer,
	IEnumerable<TInner> inner,
	Func<TOuter, TKey> outerKeySelector,
	Func<TInner, TKey> innerKeySelector,
	Func<TOuter, TInner, TResult> resultSelector,
	IEqualityComparer<TKey> comparer
)

参数

outer
Type: System.Collections.Generic.IEnumerable<TOuter>

要联接的第一个序列。

inner
Type: System.Collections.Generic.IEnumerable<TInner>

要与第一个序列联接的序列。

outerKeySelector
Type: System.Func<TOuter, TKey>

用于从第一个序列的每个元素提取联接键的函数。

innerKeySelector
Type: System.Func<TInner, TKey>

用于从第二个序列的每个元素提取联接键的函数。

resultSelector
Type: System.Func<TOuter, TInner, TResult>

用于从两个匹配元素创建结果元素的函数。

comparer
Type: System.Collections.Generic.IEqualityComparer<TKey>

IEqualityComparer<T> 键进行哈希和比较。

返回值

Type: System.Collections.Generic.IEnumerable<TResult>

IEnumerable<T> ,其类型的元素 TResult 通过对两个序列执行内部联接获得的。

类型参数

TOuter

第一个序列中的元素的类型。

TInner

第二个序列中的元素的类型。

TKey

键选择器函数返回的键的类型。

TResult

结果元素的类型。

Exception Condition
ArgumentNullException

outerinnerouterKeySelectorinnerKeySelectorresultSelectornull

此方法实现通过使用延迟的执行。 最接近的返回值是指存储执行的操作所需的所有信息的对象。 此方法所表示的查询不执行之前调用枚举的对象及其 GetEnumerator 方法直接或通过使用 foreach 中 Visual C# 或 For Each 中 Visual Basic。

如果omparernull, ,默认的相等比较, Default, ,用于执行哈希,并对键进行比较。

联接是指相互关联的基于一个公用密钥信息的两个源元素的操作。 Join<TOuter, TInner, TKey, TResult> 提供了两个信息源和依据它们相匹配在一个方法调用中的键。 这不同于使用 SelectMany, ,这需要多个方法调用来执行相同的操作。

Join<TOuter, TInner, TKey, TResult> 保留的元素的顺序 outer, ,对于每个这些元素中,匹配的元素的顺序 inner

在关系数据库术语 Join<TOuter, TInner, TKey, TResult> 方法实现内部的同等联接。 内部意味着在结果中包含其他序列中具有匹配项的元素。 同等联接是一种联接在对键进行比较的相等性。 左外部联接操作的 A 有没有专用的标准查询运算符,但可以通过执行 GroupJoin<TOuter, TInner, TKey, TResult> 方法。 请参阅Join Operations.

通用 Windows 平台
自 8 起可用
.NET Framework
自 3.5 起可用
可移植类库
可移植 .NET 平台 中受支持
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用
Windows Phone
自 8.1 起可用
返回页首
显示: