in src/NuGet.Core/NuGet.Packaging/ContentModel/ContentItemCollection.cs [424:513]
public bool Equals(ContentItem? x, ContentItem? y)
{
if (ReferenceEquals(x, y))
{
return true;
}
if (x is null || y is null)
{
return false;
}
if (x._properties == null && y._properties != null)
{
return false;
}
if (x._properties != null && y._properties == null)
{
return false;
}
if (x._properties?.Count != y._properties?.Count)
{
return false;
}
if (x._properties != null && y._properties != null)
{
foreach (var xProperty in x._properties)
{
object? yValue;
if (!y._properties.TryGetValue(xProperty.Key, out yValue))
{
return false;
}
if (!Equals(xProperty.Value, yValue))
{
return false;
}
}
foreach (var yProperty in y._properties)
{
object? xValue;
if (!x._properties.TryGetValue(yProperty.Key, out xValue))
{
return false;
}
}
}
else
{
if (!EqualityUtility.EqualsWithNullCheck(x._assembly, y._assembly))
{
return false;
}
if (!EqualityUtility.EqualsWithNullCheck(x._locale, y._locale))
{
return false;
}
if (!EqualityUtility.EqualsWithNullCheck(x._related, y._related))
{
return false;
}
if (!EqualityUtility.EqualsWithNullCheck(x._msbuild, y._msbuild))
{
return false;
}
if (!EqualityUtility.EqualsWithNullCheck(x._tfm, y._tfm))
{
return false;
}
if (!EqualityUtility.EqualsWithNullCheck(x._rid, y._rid))
{
return false;
}
if (!EqualityUtility.EqualsWithNullCheck(x._any, y._any))
{
return false;
}
if (!EqualityUtility.EqualsWithNullCheck(x._satelliteAssembly, y._satelliteAssembly))
{
return false;
}
if (!EqualityUtility.EqualsWithNullCheck(x._codeLanguage, y._codeLanguage))
{
return false;
}
}
return true;
}