我需要使用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