5

可能重复:
C#:是具有继承的泛型类型的运算符

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

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

谢谢。

4

4 回答 4

9

如果你想要完全等价的:

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

但是,如果您只是迭代元素并且并不真正需要 a List,则可以不调用GetList().

于 2012-09-17T14:09:26.783 回答
4
var list = deals.Select(d => new DealBookmarkWrapper(d))
                .Cast<IBookmarkWrapper>()
                .ToList();
于 2012-09-17T14:09:31.833 回答
3

怎么样

 var list = deals.ConvertAll(item=>new DealBookmarkWrapper(item)); 
于 2012-09-17T14:10:29.770 回答
1

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

var list = new List<IBookmarkWrapper>();  //already existing
...  
deals.Aggregate(list, (s, c) => 
                      { 
                        s.Add(new DealBookmarkWrapper(c)); 
                        return s; 
                      });
于 2012-09-17T14:32:16.893 回答