asp.net搜索字符串

时间:2012-07-24 10:20:13

标签: c# asp.net string

我有一些来自网页的数据,我需要根据回来的内容对其进行过滤。 我有一个预定义的关键字,我想搜索,大约30个。

匹配它们的最有效方法是什么?因为我可以有大约2000条记录,所以我不认为通过列表/数组/ switch-case搜索每条记录都太有效了吗?

2 个答案:

答案 0 :(得分:0)

除了list / array / switch-case之外,我唯一能想到的就是Linq。

List<string> found = (from str in listOfStringsToSearch 
                     where listOfKeywords.Any(keyword => str.Contains(keyword)) 
                     select str).ToList<string>();

答案 1 :(得分:0)

如果您只是想知道哪些搜索条件具有匹配的字符串,您可以使用Enumerable.Intersect

var both = records.Intersect(searchTerms);

它是延迟执行的,因此不会创建新的集合,并且在您以某种方式使用它之前不会执行(fe ToListforeachstring.Join)。

它内部使用Set,因此非常有效。

以下是有关LINQ中设置操作的更多信息:

http://msdn.microsoft.com/en-us/library/bb546153.aspx