/// <summary> /// Ctor /// </summary> /// <param name="listA">Left sequence</param> /// <param name="listB">Right sequence</param> /// <param name="supportChangeEditType">If "Change" EditType is allowed (default is delete and insert only)</param> /// <param name="equalityComparer"></param> public MyersDiff(IList <T> listA, IList <T> listB, bool supportChangeEditType, IEqualityComparer <T> equalityComparer = default) { _listA = listA; _listB = listB; _supportChangeEditType = supportChangeEditType; _equalityComparer = equalityComparer ?? EqualityComparer <T> .Default; var n = listA.Count; var m = listB.Count; _vectorForward = new DiagonalVector(n, m); _vectorReverse = new DiagonalVector(n, m); }
/// <summary> /// Ctor /// </summary> /// <param name="listA">Left sequence</param> /// <param name="listB">Right sequence</param> /// <param name="supportChangeEditType">If "Change" EditType is allowed (default is delete and insert only)</param> /// <param name="equalityComparer"></param> public MyersDiffArraySegment(T[] listA, T[] listB, bool supportChangeEditType, IEqualityComparer <T> equalityComparer = default) { _listA = listA; _listB = listB; _supportChangeEditType = supportChangeEditType; _equalityComparer = equalityComparer ?? EqualityComparer <T> .Default; var n = listA.Length; var m = listB.Length; _vectorForward = new DiagonalVector(n, m); _vectorReverse = new DiagonalVector(n, m); }