结束两个类列表

时间:2015-12-11 15:30:22

标签: c#

我有一个类似于这样定义的类,在程序中我不断添加内容

List<ChangesSummaryClass> allCombinationsClass = new List<ChangesSummaryClass>();

我也有这个课程,同样我在课程期间不断添加内容。

List<ChangesSummaryClass> grandClass = new List<ChangesSummaryClass>();

现在我想将他们所拥有的任何对象组合在一个列表中:

    List<ChangesSummaryClass> bigList = new List<ChangesSummaryClass>();
    bigList = grandClass.Concat(allCombinationsClass);

但是我得到的错误无法将源转换为目标类型。

2 个答案:

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