如何比较不精确的字符串值



我想比较两个不精确的string值 例如,我想将管理员管理员进行比较,这应该返回 true 或应该执行。 我尝试了contain

不起作用
var prodcut = lstProducts.Where(i => i.Name.ToLower().Contains(appname.ToLower())).FirstOrDefault();

如果i.Name是"管理员"而appname.ToLower()是"管理员",则上面的代码不起作用。它只是返回 null,但希望它应该检测值。

如果你想双向检查它,所以如果A包含B或如果B包含A,你可以使用||运算符(OR运算符(,如下所示:

a.Contains(b) || b.Contains(a)

你的字符串方式错误(你正在寻找Admin中的Adminstrator(

您可以像这样双向进行检查:

lstProducts.Where(i => 
i.Name.ToLower().Contains(appname.ToLower()) ||
appname.ToLower().Contains(i.Name.ToLower())
).FirstOrDefault();

或者只是比较前几个字符:

lstProducts.Where(i => 
i.Name.ToLower().SubString(0,5) == appname.ToLower().SubString(0,5))
).FirstOrDefault();

模糊匹配实际上是一个相当复杂的主题,但对该主题有很多研究。

相关内容

  • 没有找到相关文章

最新更新