/// <summary> /// Keeps only the first row of each key, and discard all subsequent rows with existing keys. /// <para>- input can be unordered</para> /// <para>- if a more refined logic is required to decide which row should be kept of rows with same key then <see cref="ReduceGroupToSingleRowMutatorFluent.ReduceGroupToSingleRow(IFluentProcessMutatorBuilder, ReduceGroupToSingleRowMutator)"/> or <see cref="SortedReduceGroupToSingleRowMutatorFluent.ReduceGroupToSingleRowOrdered(IFluentProcessMutatorBuilder, SortedReduceGroupToSingleRowMutator)"/></para> can be used instead. /// <para>- all keys are stored in memory</para> /// </summary> public static IFluentProcessMutatorBuilder RemoveDuplicateRows(this IFluentProcessMutatorBuilder builder, RemoveDuplicateRowsMutator mutator) { return(builder.AddMutators(mutator)); }
/// <summary> /// Keeps only the first row of each key, and discard all subsequent rows with existing keys. /// <para>- input can be unordered</para> /// <para>- if a more refined logic is required to decide which row should be kept of rows with same key then <see cref="ReduceGroupToSingleRowMutatorFluent.ReduceGroupToSingleRow(IFluentSequenceMutatorBuilder, ReduceGroupToSingleRowMutator)"/> or <see cref="SortedReduceGroupToSingleRowMutatorFluent.ReduceGroupToSingleRowOrdered(IFluentSequenceMutatorBuilder, SortedReduceGroupToSingleRowMutator)"/></para> can be used instead. /// <para>- all keys are stored in memory</para> /// </summary> public static IFluentSequenceMutatorBuilder RemoveDuplicateRows(this IFluentSequenceMutatorBuilder builder, RemoveDuplicateRowsMutator mutator) { return(builder.AddMutator(mutator)); }