是否可以在不使用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; });