| File: RuntimeModel\CompatibilityProfile.cs | Web Access |
| Project: src\nuget-client\src\NuGet.Core\NuGet.Packaging\NuGet.Packaging.csproj (NuGet.Packaging) |
// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using System.Collections.Generic; using System.Linq; using NuGet.Frameworks; using NuGet.Shared; namespace NuGet.RuntimeModel { public class CompatibilityProfile : IEquatable<CompatibilityProfile> { public string Name { get; } public IList<FrameworkRuntimePair> RestoreContexts { get; } public CompatibilityProfile(string name) : this(name, Enumerable.Empty<FrameworkRuntimePair>()) { } public CompatibilityProfile(string name, IEnumerable<FrameworkRuntimePair> restoreContexts) { Name = name; RestoreContexts = restoreContexts.ToList(); } public override string ToString() { return $"{Name}: {string.Join(",", RestoreContexts)}"; } public override int GetHashCode() { var hashCode = new HashCodeCombiner(); hashCode.AddObject(Name); hashCode.AddSequence(RestoreContexts); return hashCode.CombinedHash; } public override bool Equals(object? obj) { return Equals(obj as CompatibilityProfile); } public bool Equals(CompatibilityProfile? other) { return other != null && string.Equals(Name, other.Name, StringComparison.Ordinal) && RestoreContexts.OrderedEquals(other.RestoreContexts, r => r); } public CompatibilityProfile Clone() { return new CompatibilityProfile(Name, RestoreContexts.ToList()); } } }