合并列表<t>的相同类型</t>

时间:2011-12-06 15:51:35

标签: c# list

我有2个列表,其定义是:

List<Type> filteredTypes = new List<Type>();
List<Type> interfaceTypes = new List<Type>();

当我的列表被填充时,我想在它们两个上得到一个循环,我的想法是在“循环”之前合并它们,所以我不必使用LINQ(不喜欢它.. 。-_-) 我检查了在线文档,我想我必须这样做:

filteredTypes.Concat(interfaceTypes);

我尽可能深地调试,并且在说明后我的列表是相同的...... 我错过了什么?

6 个答案:

答案 0 :(得分:7)

concat函数returns是一个新集合,它不会添加到现有集合中。

var allTypes = filteredTypes.Concat(interfaceTypes);

答案 1 :(得分:4)

见这里:.NET List<T> Concat vs AddRange

.Concat()调用会创建一个新的List<T>,因此您需要以下内容:

var mergedList = filteredTypes.Concat(interfaceTypes);

答案 2 :(得分:3)

Concat返回新列表而不修改任何原始列表。如果你想把它放在一个新的列表中,请执行以下操作:

List<Type> newList = filteredTypes.Concat(interfaceTypes);

如果要将其放在旧列表中,请使用AddRange:

filteredTypes.AddRange(interfaceTypes);

答案 3 :(得分:0)

为什么不使用AddRange?

 filteredTypes.AddRange(interfaceTypes);

答案 4 :(得分:0)

IEnumerable<T>.Concat(IEnumerable<T>)返回IEnumerable<T>.

试试这个:

var resultTypes = filteredTypes.Concat(interfaceTypes);

答案 5 :(得分:0)

你必须这样做:

var temp = firstList.Concat(secondList);
List<Type> finalList = temp.ToList<Type>();