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

Whereメソッドチェーンの見掛けと実際上のコードで示したWhereメソッドのチェーンは、まず、最初のWhereメソッドを実行して「{"ぶた", "こぶた", "ぶたまん", "ねぶたまつり", "ねぷたまつり"}」という中間結果のコレクションを生成し、それを次のWhereメソッドが受け取って処理して「{"ねぶたまつり"}」という最終結果のコレクションを生成するように見える。しかし実際の動作は、図の下にあるように、コレクションの要素の一つずつに対して、最初のWhereメソッドと2つ目のWhereメソッドの処理が実行されていくのである。先ほどの実行結果と見比べてみてほしい。

Whereメソッドチェーンの見掛けと実際上のコードで示したWhereメソッドのチェーンは、まず、最初のWhereメソッドを実行して「{"ぶた", "こぶた", "ぶたまん", "ねぶたまつり", "ねぷたまつり"}」という中間結果のコレクションを生成し、それを次のWhereメソッドが受け取って処理して「{"ねぶたまつり"}」という最終結果のコレクションを生成するように見える。しかし実際の動作は、図の下にあるように、コレクションの要素の一つずつに対して、最初のWhereメソッドと2つ目のWhereメソッドの処理が実行されていくのである。先ほどの実行結果と見比べてみてほしい。