0

Webページからデータを受け取っているので、戻ってきたものに基づいてデータをフィルタリングする必要があります。検索したいキーワードの数は、約30個です。

それらを一致させる最も効率的な方法は何ですか?〜2000のレコードを受け取ることができるので、すべてのレコードのリスト/配列/スイッチケースを検索するのは効率的すぎるとは思いませんか?

4

2 に答える 2

0

どの検索用語に一致する文字列があるかを知りたいだけの場合は、次を使用できますEnumerable.Intersect

var both = records.Intersect(searchTerms);

ToList実行は延期されるため、新しいコレクションは作成されず、何らかの方法(feまたはforeachまたは)で使用するまで実行されませんstring.Join

内部でを使用するSetため、非常に効率的です。

LINQでのセット操作の詳細は次のとおりです。

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

于 2012-07-24T10:31:50.630 に答える
0

list / array / switch-caseの他に、私が考えることができるのはLinqだけです。

List<string> found = (from str in listOfStringsToSearch 
                     where listOfKeywords.Any(keyword => str.Contains(keyword)) 
                     select str).ToList<string>();
于 2012-07-24T10:28:20.977 に答える