合并List< T>相同类型的

本文关键字:同类型 List 合并 | 更新日期: 2023-09-27 18:17:01

我得到了2个列表,它们的定义是:

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

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

filteredTypes.Concat(interfaceTypes);

我尽可能深入地调试了,我的列表在指令之后是一样的…我错过了什么?

合并List< T>相同类型的

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

var allTypes = filteredTypes.Concat(interfaceTypes);

见:.NET ListConcat vs AddRange

.Concat()调用创建一个新的List<T>,所以你需要这样做:

var mergedList = filteredTypes.Concat(interfaceTypes);

Concat返回一个新列表,而不修改任何一个原始列表。如果你想把它放到一个新的列表中,这样做:

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

如果你想把它放在旧列表中,使用AddRange:

filteredTypes.AddRange(interfaceTypes);

为什么不使用adrange呢?

 filteredTypes.AddRange(interfaceTypes);

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

试试这个:

var resultTypes = filteredTypes.Concat(interfaceTypes);

你必须这样做:

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