1

我有一个看起来像这样的对象

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)));
4

2 回答 2

1

不是 100% 确定 Regex.Match 语法,但应该是这样的:

var searchHits = GetAll().Where(x => x.Keywords.Any( k => Regex.Match(k, query).Success));

这将返回MyObject至少一个关键字与查询正则表达式匹配的所有 s。

于 2012-05-16T07:45:37.687 回答
1
Regex reg = new Regex(query);
var searchHits = GetAll().Where(x => x.Keywords.Any(k => reg.IsMatch(k)));
于 2012-05-16T07:45:59.667 回答