From 31cd0784550295275b2f143aaf394e46944caddf Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Thu, 20 Nov 2025 15:26:12 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=85=BC=E5=AE=B9=20netstander=20?= =?UTF-8?q?=E6=A1=86=E6=9E=B6?= 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 bcf63d1..0f0858a 100644 --- a/binding/csharp/IP2Region.Net/XDB/Searcher.cs +++ b/binding/csharp/IP2Region.Net/XDB/Searcher.cs @@ -58,7 +58,7 @@ public class Searcher : ISearcher var data = _cacheStrategy.GetData(256 + idx, vectorIndexSize); var sPtr = BinaryPrimitives.ReadUInt32LittleEndian(data.Span); - var ePtr = BinaryPrimitives.ReadUInt32LittleEndian(data.Span[4..]); + var ePtr = BinaryPrimitives.ReadUInt32LittleEndian(data.Span.Slice(4)); var length = ipBytes.Length; var indexSize = length * 2 + 6; @@ -74,7 +74,7 @@ public class Searcher : ISearcher var p = (int)sPtr + m * indexSize; var buff = _cacheStrategy.GetData(p, indexSize); - var s = buff.Span[..length]; + var s = buff.Span.Slice(0, length); var e = buff.Span.Slice(length, length); if (ByteCompare(ipBytes, s) == -1) { @@ -87,13 +87,13 @@ public class Searcher : ISearcher else { dataLen = BinaryPrimitives.ReadUInt16LittleEndian(buff.Span.Slice(length * 2, 2)); - dataPtr = BinaryPrimitives.ReadUInt32LittleEndian(buff.Span[(length * 2 + 2)..]); + dataPtr = BinaryPrimitives.ReadUInt32LittleEndian(buff.Span.Slice(length * 2 + 2)); break; } } var regionBuff = _cacheStrategy.GetData((int)dataPtr, dataLen); - return Encoding.UTF8.GetString(regionBuff.Span); + return Encoding.UTF8.GetString(regionBuff.Span.ToArray()); } static int ByteCompare(byte[] ip1, ReadOnlySpan ip2) => ip1.Length == 4 ? IPv4Compare(ip1, ip2) : IPv6Compare(ip1, ip2);