我想比较两个不精确的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();
模糊匹配实际上是一个相当复杂的主题,但对该主题有很多研究。