public int GetHashCode(PackageDependency obj)
        {
            if (ReferenceEquals(obj, null))
            {
                return(0);
            }

            var combiner = new HashCodeCombiner();

            combiner.AddObject(obj.Id.ToUpperInvariant());

            // Treat null ranges and the All range as the same thing here
            if (obj.VersionRange != null &&
                !obj.VersionRange.Equals(VersionRange.All))
            {
                combiner.AddObject(_versionRangeComparer.GetHashCode(obj.VersionRange));
            }

            foreach (var include in obj.Include.OrderBy(s => s, StringComparer.OrdinalIgnoreCase))
            {
                combiner.AddObject(include.ToLowerInvariant());
            }

            // separate the lists
            combiner.AddObject(8);

            foreach (var exclude in obj.Exclude.OrderBy(s => s, StringComparer.OrdinalIgnoreCase))
            {
                combiner.AddObject(exclude.ToLowerInvariant());
            }

            return(combiner.CombinedHash);
        }
예제 #2
0
        public int GetHashCode(PackageDependency obj)
        {
            if (Object.ReferenceEquals(obj, null))
            {
                return(0);
            }

            var combiner = new HashCodeCombiner();

            combiner.AddObject(obj.Id.ToUpperInvariant());

            // Treat null ranges and the All range as the same thing here
            if (obj.VersionRange != null && !obj.VersionRange.Equals(VersionRange.All))
            {
                combiner.AddObject(_versionRangeComparer.GetHashCode(obj.VersionRange));
            }

            return(combiner.CombinedHash);
        }