我有三个单独的ToSelectList项目,我想将每个列表合并到一个下拉列表框中,并想知道我是否可以使用联盟。或者,联盟仅适用于2个t选项列表。
谢谢!
答案 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。