我需要使用equal而不是Contains。 我有一個名爲selectedDeviceTypeIDs碼的數組我認爲它有兩個代碼{1,2}LINQ等於包含
我需要得到查詢結果,如果設備的標識是完全{1,2},所以我必須更換selectedDeviceTypeIDs selectedDeviceTypeIDs.Contains .equal或類似的東西...
m => m.Devices.Any(w => selectedDeviceTypeIDs.Contains(w.DeviceTypeID)
if (DeviceTypeIDs != null)
{
Guid[] selectedDeviceTypeIDs = DeviceTypeIDs.Split(',').Select(Guid.Parse).ToArray();
query = query.Where(j => j.HospitalDepartments.Any(jj => jj.Units.Any(m => m.Devices.Any(w => selectedDeviceTypeIDs.Contains(w.DeviceTypeID)))));
}
你爲什麼不使用循環並檢查相等的數據? – Bharat
@Bharat因爲這需要將整個數據集放入內存中,這看起來像是一個實體框架查詢。 – DavidG
我通常測試不等於0的計數,這意味着一切都匹配。同樣使用Where((x,i)=> ....類似於這裏Where((j,i)=>(j.HospitalDepartments!= selectedDeviceTypeIDs [i]))。Count == 0 – jdweng