如何选择/合并多个匹配结果
本文关键字:结果 合并 何选择 选择 | 更新日期: 2023-09-27 18:35:53
我正在尝试创建一组级联下拉列表,基于区域列表的国家/地区列表。
我在代码隐藏中创建了一个Dictionary<String, List<String>>
,其中包括地区、国家/地区列表。
现在在区域下拉选择(这是多选的),我需要选择属于特定地区(选定地区)的国家/地区并将其绑定到国家/地区列表。
我正在尝试这种方式:
List<string> selectedRegions = (from ListItem item in regionList.Items
where item.Selected
select item.Text).ToList();
var countryList = (selectedRegions
.Where(item => regionToCountry.ContainsKey(item))
.Select(item => new { value = regionToCountry[item] }));
countryList.DataSource = countryList.ToList();
countryList.DataBind();
问题是国家列表以索引格式获取结果,例如:countryList[0](包含区域a中的所有国家)B区的国家列表[1]。
我需要一个可以绑定到下拉列表的合并列表。
提前非常感谢。
维沙尔
您可以使用
SelectMany
来展平Dictionary<TKey,TValue>
内的List<string>
。
var countryList =
regionToCountry.Where(x => selectedRegions.Contains(x.Key))
.SelectMany(x => x.Value)
.ToList();
试试这个:
var countryList = selectedRegions
.Where(item => regionToCountry.ContainsKey(item))
.SelectMany(item => regionToCountry[item])
.ToList();