Могу ли я объединить 3 ToSelectList - PullRequest
1 голос
/ 07 мая 2011

У меня есть три отдельных элемента ToSelectList, и я хотел объединить каждый список в один выпадающий список, и мне было интересно, смогу ли я использовать для него Union. Или же объединение предназначено только для 2 элементов списка выбора.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 07 мая 2011

Вы можете объединить только два списка одновременно, используя Union() - но вы можете объединить его в цепочку, чтобы достичь желаемого:

var resultList = list1.Union(list2).Union(list3).ToList();
0 голосов
/ 07 мая 2011

Если элемент существует в нескольких списках, хотите ли вы, чтобы элемент появлялся один раз или столько раз, сколько он существует во всех списках?

Как я понимаю, вам нужно только конкат:

var combinedList = list1.Concat(list2).Concat(list3).ToList();

Если вы хотите избежать дубликатов:

var unionList = list1.Union(list2).Union(list3).ToList();

Объединение обходится дороже, так как оно должно пройти через список и позаботиться о дубликатах.Если ваш элемент относится к ссылочному типу, а интерфейсы IComparable или IEquable отсутствуют и вы не предоставляете IEqualityComparer, вам, скорее всего, не нужен Union.

0 голосов
/ 07 мая 2011

Вы можете попробовать использовать Union() метод расширения linq.

var finalSelectList = model.getFirstList().ToSelectList().Union(
                model.getSecondList().ToSelectList().Union(
                model.getThirdList().ToSelectList()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...