diff --git a/ICD.Common.Utils/Comparers/FileNameEqualityComparer.cs b/ICD.Common.Utils/Comparers/FileNameEqualityComparer.cs new file mode 100644 index 0000000..60cdcca --- /dev/null +++ b/ICD.Common.Utils/Comparers/FileNameEqualityComparer.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using ICD.Common.Utils.IO; + +namespace ICD.Common.Utils.Comparers +{ + public sealed class FileNameEqualityComparer : IEqualityComparer + { + private static FileNameEqualityComparer s_Instance; + + public static FileNameEqualityComparer Instance + { + get { return s_Instance ?? (s_Instance = new FileNameEqualityComparer()); } + } + + private FileNameEqualityComparer() + { + } + + public bool Equals(string x, string y) + { + return GetHashCode(x) == GetHashCode(y); + } + + public int GetHashCode(string obj) + { + return obj == null ? 0 : IcdPath.GetFileName(obj).GetHashCode(); + } + } +} diff --git a/ICD.Common.Utils/ICD.Common.Utils_SimplSharp.csproj b/ICD.Common.Utils/ICD.Common.Utils_SimplSharp.csproj index b199d67..9d0bd60 100644 --- a/ICD.Common.Utils/ICD.Common.Utils_SimplSharp.csproj +++ b/ICD.Common.Utils/ICD.Common.Utils_SimplSharp.csproj @@ -77,6 +77,7 @@ +