ASP.NET Core中如何替代.Contains实现患者编号精确搜索?
实现精确匹配的几种方案
方案1:数值类型直接匹配(推荐)
如果PatientNo是int、long这类数值类型,无需转字符串,先把搜索的term转成对应数值,再做相等判断:
public List<LabResult> Search(string term) { if (int.TryParse(term, out int patientNo)) { return db.LabResults.Where(a => a.PatientNo == patientNo).ToList(); } // 处理无法转换为数值的情况,返回空列表或自定义逻辑 return new List<LabResult>(); }
方案2:字符串类型精确匹配
如果PatientNo本身是字符串类型,直接用相等运算符==做精确匹配:
public List<LabResult> Search(string term) { return db.LabResults.Where(a => a.PatientNo == term).ToList(); }
额外提示
- 数值匹配的性能优于字符串匹配,数据库对数值类型的索引优化更高效。
- 必须添加参数校验,避免因
term格式错误抛出异常。
内容的提问来源于stack exchange,提问作者Ziad Adnan
相关产品推荐
相关产品推荐

