当前位置: 首页 > 编程语言 > C#

如何使用精确的数组值而不是包含共享

时间:2023-04-11 00:32:40 C#

的精确值而不是任一个。IEnumerableselectedDeviceTypeIDs=DeviceTypeIDs.Split(',').Select(Guid.Parse).AsEnumerable();query=query.Where(j=>j.HospitalDepartments.Any(jj=>jj.Units.Any(m=>m.Devices.Any(w=>selectedDeviceTypeIDs.Contains(w.DeviceTypeID)))));这是我的完整代码varquery=db.Hospitals.AsQueryable();如果(DeviceTypeIDs!=null){IEnumerableselectedDeviceTypeIDs=DeviceTypeIDs.Split(',').Select(Guid.Parse).AsEnumerable();查询=查询}if(UnitTypeID!=null){query=query.Where(j=>j.HospitalDepartments.Any(www=>www.Units.Any(u=>u.UnitTypeID==UnitTypeID)));}if(DirectorateOfHealthID!=null){query=query.Where(h=>h.DirectorateHealthID==DirectorateOfHealthID);}query=query.Where(j=>j.HospitalDepartments.Any(u=>u.Units.Any(d=>d.Devices.Any(s=>s.Status==Enums.DeviceStatus.Free)))&&j.HospitalDepartments.Any(hd=>hd.Units.Any(u=>u.Beds.Any(b=>b.Status==Enums.BedStatus.Free))));varlist=query.ToList();返回Request.CreateResponse(HttpStatusCode.OK,列表);您的问题不是Contains()而是使用查询使用Any()方法,一旦在提供的selectedDeviceTypeIDs列表中找到具有DeviceTypeID的设备,该方法将返回true。如果您需要检查单元中的所有设备是否匹配列表中的所有项目,您可以使用:query=query。其中(j=>j.HospitalDepartments.Any(jj=>jj.Units.Any(m=>m.Devices.All(w=>selectedDeviceTypeIDs.Contains(w.DeviceTypeID))&&selectedDeviceTypeIDs.All(g=>m.Devices.Select(d=>d.DeviceTypeID).Contains(g)))));请注意,如果您在selectedDeviceTypeIDs中有重复项但在Unit的设备中没有,它仍将返回true。以上就是C#学习教程:如何使用Exact数组取值代替包含所有分享的内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: