使用需要 T1 的 T2 构造函数从 T1 列表创建 T2 列表 [重复]
Posted
技术标签:
【中文标题】使用需要 T1 的 T2 构造函数从 T1 列表创建 T2 列表 [重复]【英文标题】:Create list of T2 from list of T1, using T2's constructor that requires T1 [duplicate] 【发布时间】:2020-06-29 19:16:21 【问题描述】:如果我从方法 GetType1List
获得 Type1
的列表
List<Type1> Type1List = GetType1List();
然后我可以创建一个Type2
的列表,并使用foreach
在第一个列表中循环,以使用需要Type1
实例的构造函数添加新的Type2
:
List<Type2> Type2List = new List<Type2>();
foreach(Type1 type1 in Type1List)
Type2List.Add(new Type2(Type1));
有没有什么方法可以在不创建Type1
的初始列表和foreach
循环的情况下结束它?
【问题讨论】:
【参考方案1】:使用 LINQ Select
:
List<Type2> Type2List = Type1List
.Select(type1 => new Type2(type1))
.ToList();
【讨论】:
【参考方案2】:你可以使用 Linq:
var TypeList2 = GetType1List().Select(type1 => new Type2(type1)).ToList();
【讨论】:
【参考方案3】:最简单的方法似乎是List<T>.ConvertAll()
方法,不使用System.Linq
参考
var Type1List = GetType1List();
var Type2List = Type1List.ConvertAll(t1 => new Type2(t1));
【讨论】:
以上是关于使用需要 T1 的 T2 构造函数从 T1 列表创建 T2 列表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章