Поместите совпадение в список и получите отличительные названия стран - PullRequest
0 голосов
/ 24 ноября 2011

В моем интерфейсе есть 2 варианта для выбора страны, один из которых [Резидент: один, выберите список удаления из списка], а другой - [Страна, которую вы посетили: список отбрасывания из нескольких выборок], и все значения помещаются в список SharePoint, сначала какa Выберите поля и другое в качестве поиска values (id#;#value,#id#;#value).

Теперь у меня есть страница поиска, где пользователь может выбрать критерии из раскрывающегося списка Страна: Для загрузки раскрывающегося списка я выбрал все отдельные значения из Резидент.поля, каким-то образом мне нужно получить значения из посещенной страны, а также загрузить его в раскрывающемся списке как отдельные значения.

Я не могу придумать логику для извлечения отдельных значений из нескольких выбранных полей, а затем сравнитьэто с обычными значениями полей выбора, как показано ниже:

   Resident of             Countries Visited

a) Canada                  Chile,Argentina,Russia.
b) Peru                    Canada,Russia,Spain,Germany.

Теперь при загрузке раскрывающегося списка, как я получу отдельные значения из приведенного выше списка.

Ответы [ 2 ]

1 голос
/ 25 ноября 2011

Немного упрощая ответ @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();

Не уверен, что это отвечает на вопрос.

1 голос
/ 24 ноября 2011

Попробуйте это:

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();

Объяснение

  • Создать коллекцию строк, разделенных запятыми
  • Используйте string.Split, чтобы спроецировать это в коллекцию наборов строк
  • Используйте SelectMany, чтобы свести это в один список
  • Используйте Disting для удаления дубликатов

Я не могу сказать из вопроса, хотите ли вы, чтобы список резидентов был объединен с этим списком. Если вы это сделаете, вам нужно сделать Union(residentCountries) вместо Distinct() в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...