diff options
| author | Patrick Barron <barronpm@gmail.com> | 2021-06-22 21:09:54 -0400 |
|---|---|---|
| committer | Patrick Barron <barronpm@gmail.com> | 2021-06-23 20:22:12 -0400 |
| commit | ae878fa051e73dd1df90f1fed3ca5f7ad28b7beb (patch) | |
| tree | 8d590d6ae9aea9a84626fa31695f0ed47969e33d /src/Jellyfin.Extensions/EnumerableExtensions.cs | |
| parent | f96722fa749b94b8affbf75da5d6941cab219a84 (diff) | |
| parent | 94056049131a8573d7a4d0690da04c0e8bc240ad (diff) | |
Merge branch 'master' into authenticationdb-efcore
# Conflicts:
# Emby.Server.Implementations/QuickConnect/QuickConnectManager.cs
# Emby.Server.Implementations/Session/SessionManager.cs
# Jellyfin.Server.Implementations/Security/AuthorizationContext.cs
Diffstat (limited to 'src/Jellyfin.Extensions/EnumerableExtensions.cs')
| -rw-r--r-- | src/Jellyfin.Extensions/EnumerableExtensions.cs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/Jellyfin.Extensions/EnumerableExtensions.cs b/src/Jellyfin.Extensions/EnumerableExtensions.cs new file mode 100644 index 0000000000..b5fe933571 --- /dev/null +++ b/src/Jellyfin.Extensions/EnumerableExtensions.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; + +namespace Jellyfin.Extensions +{ + /// <summary> + /// Static extensions for the <see cref="IEnumerable{T}"/> interface. + /// </summary> + public static class EnumerableExtensions + { + /// <summary> + /// Determines whether the value is contained in the source collection. + /// </summary> + /// <param name="source">An instance of the <see cref="IEnumerable{String}"/> interface.</param> + /// <param name="value">The value to look for in the collection.</param> + /// <param name="stringComparison">The string comparison.</param> + /// <returns>A value indicating whether the value is contained in the collection.</returns> + /// <exception cref="ArgumentNullException">The source is null.</exception> + public static bool Contains(this IEnumerable<string> source, ReadOnlySpan<char> value, StringComparison stringComparison) + { + if (source == null) + { + throw new ArgumentNullException(nameof(source)); + } + + if (source is IList<string> list) + { + int len = list.Count; + for (int i = 0; i < len; i++) + { + if (value.Equals(list[i], stringComparison)) + { + return true; + } + } + + return false; + } + + foreach (string element in source) + { + if (value.Equals(element, stringComparison)) + { + return true; + } + } + + return false; + } + } +} |
