如何实现简单的String搜索

时间:2011-12-03 08:24:28

标签: c# .net winforms string search

我想根据我的搜索查询在我的应用程序中实现一个简单的搜索。 假设我有一个包含2个段落或文章的数组,我想在这些文章中搜索我输入的相关主题或相关关键字。

例如:

//this is my search query
string mySearchQuery = "how to play with matches";

//these are my articles
string[] myarticles = new string[] {"article 1: this article will teach newbies how to start fire by playing with the awesome matches..", "article 2: this article doesn't contain anything"};

如何根据我上面提供的搜索查询获得第一篇文章?有什么想法吗?

2 个答案:

答案 0 :(得分:6)

这将返回myarticles中包含mysearchquery中所有字词的任何字符串:

var tokens = mySearchQuery.Split(' ');
var matches = myarticles.Where(m => tokens.All(t => m.Contains(t)));

foreach(var match in matches)
{
    // do whatever you wish with them here
}

答案 1 :(得分:1)

我确信你可以为字符串搜索做一个很好的框架,因为它是一个广泛的主题,并且有很多搜索规则。

但是对于这个简单的示例,尝试用“”分割搜索查询,为每个单词做一个简单的字符串搜索,如果找到它,在段落搜索匹配中加1点,最后返回最多的段落点...