0

我正在尝试基于区域列表创建一个级联的下拉列表、国家列表。

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 的所有国家) countryList[1] 区域 B。

我需要一个可以绑定到下拉列表的合并列表。

提前非常感谢。

维沙尔

4

2 回答 2

2

您可以使用SelectManyList<string>内部压平Dictionary<TKey,TValue>

var countryList =
    regionToCountry.Where(x => selectedRegions.Contains(x.Key))
                   .SelectMany(x => x.Value)
                   .ToList();
于 2013-10-18T14:56:39.977 回答
2

试试这个:

var countryList = selectedRegions
                          .Where(item => regionToCountry.ContainsKey(item))
                          .SelectMany(item => regionToCountry[item])
                          .ToList();
于 2013-10-18T15:00:56.583 回答