如何在C# LINQ中实现ID包含指定数字的模糊搜索
C# LINQ实现数字ID的字符串包含筛选
场景说明
你需要从前端接收字符串类型的数字查询词,筛选出列表中Id(int类型)包含该数字的对象。比如输入"8"时,Id为8、80、180的对象都需要被匹配。
代码示例
首先定义你的业务对象类(替换为实际类):
public class BusinessObject { public int Id { get; set; } // 其他业务属性 }
核心筛选逻辑:
// 从前端获取的字符串查询词 string searchQuery = "8"; // 你的对象列表 List<BusinessObject> objectList = new List<BusinessObject> { new BusinessObject { Id = 1 }, new BusinessObject { Id = 8 }, new BusinessObject { Id = 80 }, new BusinessObject { Id = 90 }, new BusinessObject { Id = 180 } }; // 先处理查询词为空/空白的情况,避免无意义匹配 if (!string.IsNullOrWhiteSpace(searchQuery)) { var filteredResult = objectList.Where(obj => obj.Id.ToString().Contains(searchQuery)).ToList(); // filteredResult 即为符合条件的对象列表 }
补充说明
- 如果需要兼容非纯数字查询词的大小写场景,可添加字符串比较规则:
obj.Id.ToString().Contains(searchQuery, StringComparison.OrdinalIgnoreCase) - 若查询词为空或全空白,建议直接返回原列表或按业务需求处理,避免
Contains("")匹配所有元素的情况。
内容的提问来源于stack exchange,提问作者KrzysztofBojarczuk
相关产品推荐
相关产品推荐

