我正在尝试根据区域列表创建一组级联下拉列表,国家/地区列表。
我在后面的代码中创建了一个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区的countryList [1]。
我需要一个合并列表,我可以将其绑定到下拉列表。
提前多多感谢。
维沙尔
答案 0 :(得分:2)
您可以使用SelectMany
展平List<string>
内的Dictionary<TKey,TValue>
。
var countryList =
regionToCountry.Where(x => selectedRegions.Contains(x.Key))
.SelectMany(x => x.Value)
.ToList();
答案 1 :(得分:2)
试试这个:
var countryList = selectedRegions
.Where(item => regionToCountry.ContainsKey(item))
.SelectMany(item => regionToCountry[item])
.ToList();