在我的前端有2个选项来选择国家,一个是[Resident of:Single Select DropDown List],另一个是[Country of the Visited:Multiselect DropDown List],所有值都在SharePoint List中,首先是a选择字段,将另一个作为查找values (id#;#value,#id#;#value)
。
现在我有一个搜索页面,用户可以从国家/地区下拉列表中选择条件:为了加载下拉列表,我选择了Resident of field中的所有不同值,不知怎的,我需要从Country访问过的值获取 - 好吧,并将其作为不同的值加载到下拉列表中。
我无法想到从多选字段中提取不同值的逻辑,然后将其与常规选择字段值进行比较,如下所示:
Resident of Countries Visited a) Canada Chile,Argentina,Russia. b) Peru Canada,Russia,Spain,Germany.
现在在加载下拉列表时,我如何从上面的列表中获取不同的值。
答案 0 :(得分:1)
试试这个:
string countries1 = "Chile,Argentina,Russia";
string countries2 = "Canada,Russia,Spain,Germany";
var countryLists = new List<string>() { countries1, countries2 };
var distinctCountries = countryLists.Select( s => s.Split(','))
.SelectMany(list => list, (list, country) => country)
.Distinct();
解释
我无法从问题中判断出您是否也希望将居民列表与此列表合并。如果您这样做,则最后需要Union(residentCountries)
代替Distinct()
。
答案 1 :(得分:1)
简化@Mike Goodwin的回答:
string countries1 = "Chile,Argentina,Russia";
string countries2 = "Canada,Russia,Spain,Germany";
var countryLists = new List<string>() { countries1, countries2 };
var distinctCountries = string.Join(",", countryLists).Split(',').Distinct();
不确定这会回答这个问题。