是否可以在不使用foreach的情况下重新创建此语句?

可能重复:
C#:是具有inheritance的generics类型的运算符

是否可以在不使用foreach语句的情况下将类型从Deal更改为DealBookmarkWrapper而将列表添加到另一个列表中?

var list = new List(); foreach (var deal in deals) { list.Add(new DealBookmarkWrapper(deal)); } 

谢谢。

如果你想要完全等价:

 var list = deals.Select(d => new DealBookmarkWrapper(d)) .Cast() .ToList(); 

但是如果你只是迭代元素并且不需要List ,你可以不用调用GetList()

 var list = deals.Select(d => new DealBookmarkWrapper(d)) .Cast() .ToList(); 

怎么样

  var list = deals.ConvertAll(item=>new DealBookmarkWrapper(item)); 

问题明确要求“将列表添加到另一个列表中”,所以这个也可能很有趣:

 var list = new List(); //already existing ... deals.Aggregate(list, (s, c) => { s.Add(new DealBookmarkWrapper(c)); return s; });