我有一个类似于这样定义的类,在程序中我不断添加内容
List<ChangesSummaryClass> allCombinationsClass = new List<ChangesSummaryClass>();
我也有这个课程,同样我在课程期间不断添加内容。
List<ChangesSummaryClass> grandClass = new List<ChangesSummaryClass>();
现在我想将他们所拥有的任何对象组合在一个列表中:
List<ChangesSummaryClass> bigList = new List<ChangesSummaryClass>();
bigList = grandClass.Concat(allCombinationsClass);
但是我得到的错误无法将源转换为目标类型。
答案 0 :(得分:3)
它不起作用,因为Concat
会返回IEnumerable<ChangesSummaryClass>
,而不是List<ChangesSummaryClass>
,因为您已经定义了变量。
您有两种选择:
将bigList
保留为列表
List<ChangesSummaryClass> bigList = new List<ChangesSummaryClass>();
bigList = grandClass.Concat(allCombinationsClass).ToList();
或者,
将bigList
定义为可枚举:
IEnumerable<ChangesSummaryClass> bigList = new List<ChangesSummaryClass>();
bigList = grandClass.Concat(allCombinationsClass);
请注意,将其定义为可枚举意味着每次迭代bigList
时都会完成列表的连接和读取。这意味着对原始列表所做的任何修改都会在下次迭代时反映在bigList
中,即使您在定义bigList
后添加到列表中也感谢{感谢Pieter Witvoet's {{ 3}})
答案 1 :(得分:2)
试
var bigList = allCombinationsClass.Union(grandClass).Distinct().ToList();