我可以联合3 ToSelectList

时间:2011-05-07 18:30:40

标签: c# asp.net-mvc-3

我有三个单独的ToSelectList项目,我想将每个列表合并到一个下拉列表框中,并想知道我是否可以使用联盟。或者,联盟仅适用于2个t选项列表。

谢谢!

3 个答案:

答案 0 :(得分:0)

您可以尝试使用Union() linq扩展方法。

var finalSelectList = model.getFirstList().ToSelectList().Union(
                model.getSecondList().ToSelectList().Union(
                model.getThirdList().ToSelectList()))

答案 1 :(得分:0)

您只能使用Union()一次合并两个列表 - 但您可以链接它以达到您想要的效果:

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

答案 2 :(得分:0)

当项目存在于多个列表中时,您希望项目出现一次,还是出现在所有列表中的次数?

据我所知,你只想连着:

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

如果你想避免重复:

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

Union更贵,因为它必须通过列表并处理重复项。 如果您的项目是引用类型且没有IComparable或IEquable接口,并且您没有提供IEqualityComparer,则可能不需要Union。