浏览代码

Merge pull request #5457 from cvium/fix_double_artist

(cherry picked from commit a037e30b4118152be980ac7de218923a54f5895c)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
Bond-009 4 年之前
父节点
当前提交
be5f511fc7

+ 3 - 9
MediaBrowser.Controller/Entities/Audio/IHasAlbumArtist.cs

@@ -1,6 +1,8 @@
 #pragma warning disable CS1591
 
 using System.Collections.Generic;
+using System.Linq;
+using MediaBrowser.Controller.Library;
 
 namespace MediaBrowser.Controller.Entities.Audio
 {
@@ -23,15 +25,7 @@ namespace MediaBrowser.Controller.Entities.Audio
         public static IEnumerable<string> GetAllArtists<T>(this T item)
             where T : IHasArtist, IHasAlbumArtist
         {
-            foreach (var i in item.AlbumArtists)
-            {
-                yield return i;
-            }
-
-            foreach (var i in item.Artists)
-            {
-                yield return i;
-            }
+            return item.AlbumArtists.Concat(item.Artists).DistinctNames();
         }
     }
 }

+ 4 - 4
MediaBrowser.Controller/Library/NameExtensions.cs

@@ -10,6 +10,10 @@ namespace MediaBrowser.Controller.Library
 {
     public static class NameExtensions
     {
+        public static IEnumerable<string> DistinctNames(this IEnumerable<string> names)
+            => names.GroupBy(RemoveDiacritics, StringComparer.OrdinalIgnoreCase)
+                .Select(x => x.First());
+
         private static string RemoveDiacritics(string? name)
         {
             if (name == null)
@@ -19,9 +23,5 @@ namespace MediaBrowser.Controller.Library
 
             return name.RemoveDiacritics();
         }
-
-        public static IEnumerable<string> DistinctNames(this IEnumerable<string> names)
-            => names.GroupBy(RemoveDiacritics, StringComparer.OrdinalIgnoreCase)
-                    .Select(x => x.First());
     }
 }