【发布时间】:2014-02-21 17:49:53
【问题描述】:
我遇到了一个问题,涉及根据 3 种不同类型的列表源过滤列表。
假设我有一个包含美国每家医院的非常大的列表。所以我有 3 个表格,一个显示每个州的所有医院的州表,一个显示每个州城市中所有医院的城市表,以及一个显示邮政编码内所有医院的邮政编码表。
以下是我的一些搜索场景:
- 如果我在 2 个州(纽约州和加利福尼亚州)进行搜索,我会得到这些州内所有医院的列表。
- 如果我添加几个城市,纽约和洛杉矶,那么过滤器会缩小到这些医院。
- 如果我包含不分州或城市的邮政编码,例如阿拉斯加的邮政编码,那么我会显示这些(它仍然显示为纽约市、纽约市和加利福尼亚州洛杉矶选择的医院)。
这是我目前所拥有的:
(from hospitals in context.Hospitals)
where HospitalIDsByState.Contains(hospitals.state) &&
HospitalIDsByCity.Contains(hosptials.city) ||
HospitalIDsByZipcodes(hospitals.zipcode)
select hospitals)
- HospitalIDsByState 是根据选定州过滤的先前查询中的 ID 列表
- HospitalIDsByCity 是根据选定城市过滤的查询中的 ID 列表
- HospitalIDsByZipcodes 是根据选定邮政编码过滤的查询中的 ID 列表
我在这里遇到的问题是,如果我选择了州,但我的城市是空的,我没有得到任何结果,我需要过滤它,如果只选择州,我可以获得一个列表,如果城市是选中,则过滤该州的列表,如果选择了邮政编码,则在搜索结果中包含该医院列表。
【问题讨论】:
标签: linq c#-4.0 asp.net-4.5