对具有多重条件的IEnumerable对象进行运行时筛选

本文关键字:对象 运行时 筛选 IEnumerable 条件 | 更新日期: 2023-09-27 18:24:45

我有类型为IEnumerable<Person> 的PersonCollection集合

它包含:

  • 名称
  • 城市
  • 地区
  • 国家

还有一些收集,比如阵列

Array CityList = {"Delhi","Goa",...}
Array CountryList = {"India","USA",...}
Array DistrictList = {"Acb","Xyz",...}

我想在上应用过滤器

attribute City, Country & District 
of PersonCollection on the basic 
of CityList, CountryList & DistrictList.

假设我有一个过滤器

Array CityList = {"Delhi",}
Array CountryList = {"USA","UK"}
Array DistrictList = {null}

那么我需要一个具有的此类记录的过滤结果

City = Delhi
OR
Country = USA
OR 
Country = UK

有什么解决方案可以得到所需的结果?

对具有多重条件的IEnumerable对象进行运行时筛选

PersonCollection.Where(p =>
    CityList.Contains(p.City) ||
    CountryList.Contains(p.Country) ||
    DistrictList.Contains(p.District)
)