Example #1
0
        private StringsDiff CreateDiff(List <string> left, List <string> right)
        {
            bool           ignoreCase = ((_config.Globals.Paths & PathOperations.IgnoreCase) != 0);
            StringComparer cmp        = ignoreCase ?
                                        StringComparer.OrdinalIgnoreCase :
                                        StringComparer.Ordinal;
            var leftSet  = new HashSet <string>(left, cmp);
            var rightSet = new HashSet <string>(right, cmp);

            var diff = new StringsDiff();

            if ((_config.Globals.Ignore & IgnoreFlags.Left) == 0)
            {
                diff.Left = leftSet.Except(rightSet, cmp).ToList();
                diff.Left.Sort();
            }

            if ((_config.Globals.Ignore & IgnoreFlags.Both) == 0)
            {
                diff.Both = leftSet.Intersect(rightSet, cmp).ToList();
                diff.Both.Sort();
            }

            if ((_config.Globals.Ignore & IgnoreFlags.Right) == 0)
            {
                diff.Right = rightSet.Except(leftSet, cmp).ToList();
                diff.Right.Sort();
            }

            return(diff);
        }
Example #2
0
 private void OutputStringsDiff(StringsDiff diff)
 {
     OutputDiffList("Left", diff.Left);
     OutputDiffList("Both", diff.Both);
     OutputDiffList("Right", diff.Right);
 }