はじめに
「SearchExtensions」をプロジェクトに追加することで
LINQ で使用できる検索用の拡張メソッドが増えます
インストール

Visual Studio メニューの「ツール>NuGet パッケージ マネージャー>
ソリューションの NuGet パッケージの管理」を選択します

「参照」タブを選択して、検索欄に「SearchExtensions」と入力して
表示された「SearchExtensions」を選択します

インストールしたいプロジェクトをチェックして「インストール」ボタンを押します
使い方
using NinjaNye.SearchExtensions;
「SearchExtensions」を使用する際は、ソースコードの先頭に上記の using を追加します
使用例
Containing
指定された文字列を含むパラメータを持つ要素を抽出します
var result = list
.Search(x => x.Property1)
.Containing("searchTerm")
;
var result = list
.Search(x => x.Property1, x => x.Property2, x => x.Property3)
.Containing("searchTerm")
;
var result = list
.Search(x => x.Property1)
.Containing("search", "term")
;
var result = list
.Search(x => x.Property1, x => x.Property2, x => x.Property3)
.Containing("searchTerm1", "searchTerm2", "searchTerm3")
;
var result = list
.Search(x => x.Property1)
.Containing("searchTerm1")
.Search(x => x.Property1)
.Containing("searchTerm2")
;
var result = list
.Search(x => x.Property1, x => x.Property2)
.Containing("searchTerm")
.Search(x => x.Property3, x => x.Property4)
.Containing("searchTerm")
;
var result = list
.Search(x => x.Property1, x => x.Property2)
.Containing("searchTerm")
.Search(x => x.Property3)
.Containing("another", "term")
;
IsEqual
指定された文字列に等しいパラメータを持つ要素を抽出します
var result = list
.Search(x => x.Property1)
.IsEqual("searchTerm")
;
var result = list
.Search(x => x.Property1, x => x.Property2, x => x.Property3)
.IsEqual("searchTerm")
;
var result = list
.Search(x => x.Property1)
.IsEqual("search", "term")
;
var result = list
.Search(x => x.Property1, x => x.Property2, x => x.Property3)
.IsEqual("searchTerm1", "searchTerm2", "searchTerm3")
;
StartsWith
指定された文字列で始まるパラメータを持つ要素を抽出します
var result = list
.Search(x => x.Property1)
.StartsWith("searchTerm")
;
var result = list
.Search(x => x.Property1, x => x.Property2, x => x.Property3)
.StartsWith("searchTerm")
;
var result = list
.Search(x => x.Property1)
.StartsWith("search", "term")
;
var result = list
.Search(x => x.Property1, x => x.Property2, x => x.Property3)
.StartsWith("searchTerm1", "searchTerm2", "searchTerm3")
;