可能重复:
C#:是具有继承的泛型类型的运算符
是否可以在不使用 foreach 语句的情况下将类类型从 Deal 更改为 DealBookmarkWrapper 时将列表添加到另一个列表中?
var list = new List<IBookmarkWrapper>();
foreach (var deal in deals)
{
list.Add(new DealBookmarkWrapper(deal));
}
谢谢。
可能重复:
C#:是具有继承的泛型类型的运算符
是否可以在不使用 foreach 语句的情况下将类类型从 Deal 更改为 DealBookmarkWrapper 时将列表添加到另一个列表中?
var list = new List<IBookmarkWrapper>();
foreach (var deal in deals)
{
list.Add(new DealBookmarkWrapper(deal));
}
谢谢。
如果你想要完全等价的:
var list = deals.Select(d => new DealBookmarkWrapper(d))
.Cast<IBookmarkWrapper>()
.ToList();
但是,如果您只是迭代元素并且并不真正需要 a List
,则可以不调用GetList()
.
var list = deals.Select(d => new DealBookmarkWrapper(d))
.Cast<IBookmarkWrapper>()
.ToList();
怎么样
var list = deals.ConvertAll(item=>new DealBookmarkWrapper(item));
这个问题明确要求“将一个列表添加到另一个列表中”,所以这个问题也可能很有趣:
var list = new List<IBookmarkWrapper>(); //already existing
...
deals.Aggregate(list, (s, c) =>
{
s.Add(new DealBookmarkWrapper(c));
return s;
});