LINQ:文字列コレクションで複数キーワードのOR検索をするには?[C#、VB]

個別に絞り込んだ結果をマージしてOR検索とした場合の実行結果キーワードごとに個別にWhereメソッドを使い、後からUnionメソッドでマージした。そのためショートサーキット評価になっていない。コレクションの全ての要素ごとに、必ず2回ずつの比較が行われている。例えば、「"こぶた"」には「"ぶた"」が含まれているので後続の「"まつり"」との比較は(すでにOR条件が真になると判明しているので)不要なのだが、「"まつり"」との比較も実行されている。

個別に絞り込んだ結果をマージしてOR検索とした場合の実行結果キーワードごとに個別にWhereメソッドを使い、後からUnionメソッドでマージした。そのためショートサーキット評価になっていない。コレクションの全ての要素ごとに、必ず2回ずつの比較が行われている。例えば、「"こぶた"」には「"ぶた"」が含まれているので後続の「"まつり"」との比較は(すでにOR条件が真になると判明しているので)不要なのだが、「"まつり"」との比較も実行されている。