在 C# 中筛选字符串的子列表
本文关键字:列表 字符串 筛选 | 更新日期: 2023-09-27 18:34:31
>我有一个看起来像这样的对象
class MyObject
{
string Name;
string Description;
List<string> Keywords;
}
当我搜索这些时,我有一个List<MyObject> AllObjects
,我想根据Keywords
过滤
var query = Request["q"];
//will only return exact matches
var exactHits = GetAll().Where(x => x.Keywords.Contains(query));
//I want something like this
var searchHits = GetAll().Where(x => x.Keywords.Contains(Regex.Match(query)));
Regex reg = new Regex(query);
var searchHits = GetAll().Where(x => x.Keywords.Any(k => reg.IsMatch(k)));
不是 100% 确定 Regex.Match 语法,但它应该是这样的:
var searchHits = GetAll().Where(x => x.Keywords.Any( k => Regex.Match(k, query).Success));
这将返回至少有一个关键字与查询正则表达式匹配的所有MyObject
。