From a2778f9b9808953c0813e9eb446caa3b4bb4f880 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 20 Nov 2025 16:25:25 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=E8=BE=B9?= =?UTF-8?q?=E7=95=8C=E6=95=B0=E6=8D=AE=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- binding/csharp/IP2Region.Net/XDB/Searcher.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/binding/csharp/IP2Region.Net/XDB/Searcher.cs b/binding/csharp/IP2Region.Net/XDB/Searcher.cs index 0f0858a..60690c8 100644 --- a/binding/csharp/IP2Region.Net/XDB/Searcher.cs +++ b/binding/csharp/IP2Region.Net/XDB/Searcher.cs @@ -67,7 +67,7 @@ public class Searcher : ISearcher var dataLen = 0; long dataPtr = 0; - while (l < h) + while (l <= h) { int m = (int)(l + h) >> 1; @@ -76,18 +76,18 @@ public class Searcher : ISearcher var s = buff.Span.Slice(0, length); var e = buff.Span.Slice(length, length); - if (ByteCompare(ipBytes, s) == -1) + if (ByteCompare(ipBytes, s) < 0) { h = m - 1; } - else if (ByteCompare(ipBytes, e) == 1) + else if (ByteCompare(ipBytes, e) > 0) { l = m + 1; } else { dataLen = BinaryPrimitives.ReadUInt16LittleEndian(buff.Span.Slice(length * 2, 2)); - dataPtr = BinaryPrimitives.ReadUInt32LittleEndian(buff.Span.Slice(length * 2 + 2)); + dataPtr = BinaryPrimitives.ReadUInt32LittleEndian(buff.Span.Slice(length * 2 + 2, 4)); break; } }