Reduce some allocations with the magic of spans etc.

This commit is contained in:
cvium
2021-04-30 15:09:36 +02:00
parent eeb5d4bd1e
commit 608cba817c
9 changed files with 267 additions and 95 deletions

View File

@@ -132,6 +132,36 @@ namespace MediaBrowser.Model.Entities
}
}
/// <summary>
/// Sets a provider id.
/// </summary>
/// <param name="instance">The instance.</param>
/// <param name="name">The name.</param>
/// <param name="value">The value.</param>
public static void SetProviderId(this IHasProviderIds instance, ReadOnlySpan<char> name, ReadOnlySpan<char> value)
{
if (instance == null)
{
throw new ArgumentNullException(nameof(instance));
}
// If it's null remove the key from the dictionary
if (value.IsEmpty)
{
instance.ProviderIds?.Remove(name.ToString());
}
else
{
// Ensure it exists
if (instance.ProviderIds == null)
{
instance.ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
}
instance.ProviderIds[name.ToString()] = value.ToString();
}
}
/// <summary>
/// Sets a provider id.
/// </summary>