瀏覽代碼

Speed up equality comparison of BaseItem

Vasily 5 年之前
父節點
當前提交
11abe31e0d
共有 1 個文件被更改,包括 18 次插入1 次删除
  1. 18 1
      MediaBrowser.Controller/Entities/BaseItem.cs

+ 18 - 1
MediaBrowser.Controller/Entities/BaseItem.cs

@@ -33,7 +33,7 @@ namespace MediaBrowser.Controller.Entities
     /// <summary>
     /// <summary>
     /// Class BaseItem
     /// Class BaseItem
     /// </summary>
     /// </summary>
-    public abstract class BaseItem : IHasProviderIds, IHasLookupInfo<ItemLookupInfo>
+    public abstract class BaseItem : IHasProviderIds, IHasLookupInfo<ItemLookupInfo>, IEquatable<BaseItem>
     {
     {
         /// <summary>
         /// <summary>
         /// The supported image extensions
         /// The supported image extensions
@@ -2918,5 +2918,22 @@ namespace MediaBrowser.Controller.Entities
         public static readonly IReadOnlyCollection<ExtraType> DisplayExtraTypes = new[] { Model.Entities.ExtraType.BehindTheScenes, Model.Entities.ExtraType.Clip, Model.Entities.ExtraType.DeletedScene, Model.Entities.ExtraType.Interview, Model.Entities.ExtraType.Sample, Model.Entities.ExtraType.Scene };
         public static readonly IReadOnlyCollection<ExtraType> DisplayExtraTypes = new[] { Model.Entities.ExtraType.BehindTheScenes, Model.Entities.ExtraType.Clip, Model.Entities.ExtraType.DeletedScene, Model.Entities.ExtraType.Interview, Model.Entities.ExtraType.Sample, Model.Entities.ExtraType.Scene };
 
 
         public virtual bool SupportsExternalTransfer => false;
         public virtual bool SupportsExternalTransfer => false;
+
+        public override bool Equals(object obj)
+        {
+            Logger.LogInformation("Comparing me ({0}) to generic them ({1})", this, obj);
+            return this.Equals(obj as BaseItem);
+        }
+
+        public bool Equals(BaseItem item)
+        {
+            Logger.LogInformation("Comparing me ({0}) to specific them ({1})", this, item);
+            if (item == null)
+            {
+                return false;
+            }
+
+            return Id == item.Id;
+        }
     }
     }
 }
 }