ServerRow
私の見解では、 4 つのテキストボックス (ホスト名、OS、場所、ゾーン)のコレクションを保持するデータテーブルがあります。ユーザーが 4 つのボックスのいずれかに入力すると、すぐにこのリストをフィルター処理したいと考えています。このコードのセットアップが完了し、各テキスト ボックス プロパティの set メソッドで filter メソッドを呼び出す準備が整いました。
問題は次のとおりです。基準が 4 つある場合は、2 の 4 乗の異なるシナリオがあることを意味します。私がやりたいのは、これらすべてのシナリオを処理するlinqステートメントを記述して、プロパティのいずれかが句NullOrEmpty
で使用されずWhere
、値があれば対応するフィールドが検索されるようにすることです。とContains
。
例
AvailableCis = New ObservableCollection(Of ServerRow)
(_CiData.Where(Function(ci) ci.OS.ToUpper
.Equals(_selectedOS.ToUpper) AndAlso
ci.HostName.ToUpper.Contains(_ciNameFilterText.ToUpper))
.OrderBy(Function(a) a.CiName))
この例は、2 つの条件でどのように機能するかを示しており、これらの条件の両方が設定されています。