ListMerger.ThreeWayMerge<T,U> 方法

定义

给定一个基线和两个当前列表,计算合并的结果。 基线和当前列表之间的差异根据以下操作进行分析: * 将新项添加到前面 (索引 0) * 从任何位置删除项。此方法派生有序操作列表,该列表会将基线转换为每个当前列表,将基线组合在一起,并将其应用于基线以生成结果。 在列表中维护操作的顺序,而不是在列表中进行维护;例如,如果基线为 {0} ,第一个是, {1,0} 第二个是 {2,0} ,则结果可能是 {1,2,0} 或 {2,1,0} 。 两种格式都同样有效。

public static System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<T,U>> ThreeWayMerge<T,U> (System.Collections.Generic.IReadOnlyList<System.Collections.Generic.KeyValuePair<T,U>> first, System.Collections.Generic.IReadOnlyList<System.Collections.Generic.KeyValuePair<T,U>> second, System.Collections.Generic.IReadOnlyList<System.Collections.Generic.KeyValuePair<T,U>> baseline, System.Collections.Generic.IEqualityComparer<T> keyComparer = default, System.Collections.Generic.IEqualityComparer<U> valueComparer = default, Microsoft.VisualStudio.Settings.Telemetry.ISettingsLogger logger = default);
static member ThreeWayMerge : System.Collections.Generic.IReadOnlyList<System.Collections.Generic.KeyValuePair<'T, 'U>> * System.Collections.Generic.IReadOnlyList<System.Collections.Generic.KeyValuePair<'T, 'U>> * System.Collections.Generic.IReadOnlyList<System.Collections.Generic.KeyValuePair<'T, 'U>> * System.Collections.Generic.IEqualityComparer<'T> * System.Collections.Generic.IEqualityComparer<'U> * Microsoft.VisualStudio.Settings.Telemetry.ISettingsLogger -> seq<System.Collections.Generic.KeyValuePair<'T, 'U>>
Public Shared Function ThreeWayMerge(Of T, U) (first As IReadOnlyList(Of KeyValuePair(Of T, U)), second As IReadOnlyList(Of KeyValuePair(Of T, U)), baseline As IReadOnlyList(Of KeyValuePair(Of T, U)), Optional keyComparer As IEqualityComparer(Of T) = Nothing, Optional valueComparer As IEqualityComparer(Of U) = Nothing, Optional logger As ISettingsLogger = Nothing) As IEnumerable(Of KeyValuePair(Of T, U))

类型参数

T
U

参数

baseline
IReadOnlyList<KeyValuePair<T,U>>
keyComparer
IEqualityComparer<T>
valueComparer
IEqualityComparer<U>

返回

IEnumerable<KeyValuePair<T,U>>

例外

firstsecondbaseline 为 null 时引发。

适用于