gpt4 book ai didi

c# - Linq 模糊搜索

转载 作者:行者123 更新时间:2023-11-29 15:27:49 25 4
gpt4 key购买 nike

我正在根据取件位置和投递位置过滤数据库中的结果。

我的数据库包含以下值:

Pickup Location: San Jose 95002, San Jose 95112, San Jose 95119, etc.

Drop Location: SFO, SJC, Castro Valley

我的搜索字符串是:

Pickup Search String: 195, San Jose, California, 95119

Drop Search String: 56, Castro Valley Boulevard, Castro Valley, California

我正在分割搜索字符串,并在 Linq 查询中使用“Contains”寻找最佳匹配,但为了缩短时间,我在找到匹配项后立即中断循环,这会返回不良结果,是否存在更好的方法来做到这一点?

取货地址:195|圣何塞|加利福尼亚州|95119

目的地地址: 56|卡斯特罗谷大道|卡斯特罗谷|加利福尼亚州

            String startLocation = PickupAddress.Replace("\"", "").Replace("/", "");
string[] locationList = startLocation.Split('|');
var rateData = new Rate();
foreach (var location in locationList)
{
String startLocationData = location.Trim();
rateData = (from p in _context.Rates
where (p.StartLocation.Contains(startLocationData)
&& p.EndLocation.Contains(DestinationAddress))
&& p.VehicleCategoryID == VehicleID
select p).FirstOrDefault();
if (rateData != null)
{
break;
}
}


if (rateData != null)
{
String amount = Convert.ToString(rateData.Amount).Replace('$', ' ');
String plusRate = Convert.ToString(rateData.PlusRate).Replace('$', ' ');
String fee = Convert.ToString(rateData.QwykrFee).Replace('$', ' ');
Decimal retVal = Convert.ToDecimal(amount) + Convert.ToDecimal(plusRate) + Convert.ToDecimal(fee);
return retVal;
}
else
{
return 0;
}

最佳答案

https://nugetmusthaves.com/Tag/fuzzy

https://github.com/DanHarltey/Fastenshtein

最快的 .Net Levenshtein。

Fastenshtein 是经过优化和单元测试的 Levenshtein 实现。它针对速度和内存使用进行了优化。

来自包含的 brenchmarking 测试,将 3 到 20 个随机字符的随机单词与其他 Nuget Levenshtein 实现进行比较。

关于c# - Linq 模糊搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58947107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com