1
在我看來,有一個數據表包含一個ServerRow
和4個文本框(主機名,操作系統,位置,區域)的集合。當用戶輸入4個框中的任何一個時,我想立即過濾這個列表。我有這樣的代碼設置,並準備在每個文本框屬性的設置方法上使用過濾方法。用Linq和多個條件過濾集合
現在的問題:如果我有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個標準和二者的那些條件被設置。