Menu

Diff of /trunk/Src/UComparers.pas [r801] .. [r802]  Maximize  Restore

Switch to side-by-side view

--- a/trunk/Src/UComparers.pas
+++ b/trunk/Src/UComparers.pas
@@ -67,6 +67,27 @@
       }
   end;
 
+  {
+  TSameSttringEqualityComparer:
+    Case sensitive string comparer.
+  }
+  TSameStringEqualityComparer = class(TEqualityComparer<string>,
+    IEqualityComparer<string>
+  )
+  public
+    function Equals(const Left, Right: string): Boolean; override;
+      {Checks if two strings are equal.
+        @param Left [in] First string to compare.
+        @param Right [in] Second string to compare.
+        @return True if both strings are the same, taking case into account.
+      }
+    function GetHashCode(const Value: string): Integer; override;
+      {Gets hash of a string.
+        @param Value [in] String for which hash is needed.
+        @return Required hash.
+      }
+  end;
+
 
 implementation
 
@@ -120,4 +141,26 @@
   Result := ElfHash(AnsiLowerCase(Value));
 end;
 
+{ TSameStringEqualityComparer }
+
+function TSameStringEqualityComparer.Equals(const Left, Right: string): Boolean;
+  {Checks if two strings are equal.
+    @param Left [in] First string to compare.
+    @param Right [in] Second string to compare.
+    @return True if both strings are the same, taking case into account.
+  }
+begin
+  Result := AnsiSameStr(Left, Right);
+end;
+
+function TSameStringEqualityComparer.GetHashCode(const Value: string): Integer;
+  {Gets hash of a string.
+    @param Value [in] String for which hash is needed.
+    @return Required hash.
+  }
+begin
+  Result := ElfHash(Value);
+end;
+
 end.
+
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.