[英]Linq where sublist contains a partial value
我想在其子項之一中搜索搜索詞存在的項目
例如,我有一個帶設置的設備,我想要一個所有設備的列表,這些設備具有Id=1
的DeviceSetting和value.Contains("test")
。 我正在使用LINQ to SQL,所以如果可以做任何事情來保持這個快速(並避免投影到POCO)那將是偉大的
我該如何實現這一目標?
Device
{
List<DeviceSetting> Settings { get; set; }
}
DeviceSetting
{
int Id;
string value;
}
var devices = new List<Device>(); // populated from EF
var search = "test";
var results = devices.Where(d => d.Settings.Contains(searchTerm));
使用Enumerable.Any檢查是否有任何設備設置符合某些條件:
var results =
devices.Where(d => d.Settings.Any(s => s.value.Contains(searchTerm)));
如果您還需要檢查Id,請將此條件添加到Any的謂詞:
d.Settings.Any(s => s.Id == 1 && s.value.Contains(searchTerm))
注意:如果不將設備保存到列表中,則可以在服務器端執行此過濾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.