src/NetStandard/Collections/Algorithms/src/Algorithms/Modifications/EqualityTrailingCollectionModifications.cs
/// <summary>
/// The algorithm creates modifications that can transform one collection into another collection.
/// The collection modifications may be used to transform <paramref name="leftItems"/>.
/// The more the collection is synchronized in an orderly way, the more efficient the algorithm is.
/// Duplications are allowed but take into account that duplications are yielded as they are appearing.
/// </summary>
/// <typeparam name="TLeftItem">The type of left items.</typeparam>
/// <typeparam name="TRightItem">The type of right items.</typeparam>
/// <typeparam name="TComparablePart">The type of the comparable part of left item and right item.</typeparam>
/// <param name="leftItems">The collection you want to have transformed.</param>
/// <param name="getComparablePartOfLeftItem">The part of left item that is comparable with part of right item.</param>
/// <param name="rightItems">The collection in which <paramref name="leftItems"/> could be transformed.</param>
/// <param name="getComparablePartOfRightItem">The part of right item that is comparable with part of left item.</param>
/// <param name="yieldCapabilities">The yield capabilities, e.g. only insert or only remove.</param>
/// <returns>The collection modifications.</returns>
/// <exception cref="ArgumentNullException">Thrown when non-nullable arguments are null.</exception>
The algorithm creates modifications that can transform one collection into another collection.
The collection modifications may be used to transform .
The more the collection is synchronized in an orderly way, the more efficient the algorithm is.
Duplications are allowed but take into account that duplications are yielded as they are appearing.
The algorithm creates modifications that can transform one collection into another collection . The collection modifications may be used to transform . The more the collection is synchronized in an orderly way the more efficient the algorithm is . Duplications are allowed but take into account that duplications are yielded as they are appearing .
public static IEnumerable<CollectionModification<TRightItem, TLeftItem>> YieldCollectionModifications<TLeftItem, TRightItem, TComparablePart>(
            IEnumerable<TLeftItem> leftItems,
            Func<TLeftItem, TComparablePart> getComparablePartOfLeftItem,
            IEnumerable<TRightItem> rightItems,
            Func<TRightItem, TComparablePart> getComparablePartOfRightItem,
            CollectionModificationYieldCapabilities yieldCapabilities)
            where TComparablePart : notnull =>
            YieldCollectionModifications(
                leftItems,
                getComparablePartOfLeftItem,
                rightItems,
                getComparablePartOfRightItem,
                EqualityComparer<TComparablePart>.Default,
                yieldCapabilities);
public static IEnumerable < CollectionModification < TRightItem , TLeftItem > > YieldCollectionModifications < TLeftItem , TRightItem , TComparablePart > ( IEnumerable < TLeftItem > leftItems , Func < TLeftItem , TComparablePart > getComparablePartOfLeftItem , IEnumerable < TRightItem > rightItems , Func < TRightItem , TComparablePart > getComparablePartOfRightItem , CollectionModificationYieldCapabilities yieldCapabilities ) where TComparablePart : notnull => YieldCollectionModifications ( leftItems , getComparablePartOfLeftItem , rightItems , getComparablePartOfRightItem , EqualityComparer < TComparablePart > . Default , yieldCapabilities ) ;
The algorithm creates modifications that can transform one collection into another collection.
The algorithm creates modifications that can transform one collection into another collection .
The collection modifications.
The collection modifications .
Thrown when non-nullable arguments are null.
Thrown when non - nullable arguments are null .
leftItems
IEnumerable<TLeftItem>
The collection you want to have transformed.
The collection you want to have transformed .
getComparablePartOfLeftItem
Func<TLeftItem, TComparablePart>
The part of left item that is comparable with part of right item.
The part of left item that is comparable with part of right item .
rightItems
IEnumerable<TRightItem>
The collection in which  could be transformed.
The collection in which could be transformed .
getComparablePartOfRightItem
Func<TRightItem, TComparablePart>
The part of right item that is comparable with part of left item.
The part of right item that is comparable with part of left item .
yieldCapabilities
CollectionModificationYieldCapabilities
The yield capabilities, e.g. only insert or only remove.
The yield capabilities e . g . only insert or only remove .
typeparam
The type of left items.
The type of left items .
typeparam
The type of right items.
The type of right items .
typeparam
The type of the comparable part of left item and right item.
The type of the comparable part of left item and right item .