【发布时间】:2010-04-08 15:00:38
【问题描述】:
我有 2 个实现 IEnumerable 接口的类实例。我想创建一个新对象并将它们合并为一个。我知道我可以使用for..each 来执行此操作。
有没有 linq/lambda 表达式可以做到这一点?
编辑
public class Messages : IEnumerable, IEnumerable<Message>
{
private List<Message> message = new List<Message>();
//Other methods
}
要组合的代码
MessagesCombined messagesCombined = new MessagesCombined();
MessagesFirst messagesFirst = GetMessageFirst();
MessagesSecond messagesSecond = GetMessageSecond();
messagesCombined = (Messages)messagesFirst.Concat(messagesSecond); //Throws runtime exception
//异常是
Unable to cast object of type '<ConcatIterator>d__71`1[Blah.Message]' to type 'Blah.Messages'.
【问题讨论】:
-
IEnumerable 还是 IEnumerable
?你的意思是集合连接、联合还是相交? -
我又看了一遍,令人惊讶的是,它同时实现了 IEnumerable 和 IEnumerable
。不知道我们能做到这一点。我的意思是设置联合。
标签: .net linq lambda linq-to-objects