使用 linq 组合对象

Dot*_*ude 5 .net linq lambda linq-to-objects

我有 2 个实现IEnumerable接口的类的实例。我想创建一个新对象并将它们合并为一个。我知道我可以使用for..each来做到这一点。

是否有执行此操作的 linq/lambda 表达式方式?

编辑

public class Messages : IEnumerable, IEnumerable<Message>
{
  private List<Message> message = new List<Message>();

  //Other methods
}
Run Code Online (Sandbox Code Playgroud)

合并代码

MessagesCombined messagesCombined = new MessagesCombined();

MessagesFirst messagesFirst = GetMessageFirst();
MessagesSecond messagesSecond = GetMessageSecond();

messagesCombined = (Messages)messagesFirst.Concat(messagesSecond); //Throws runtime exception
Run Code Online (Sandbox Code Playgroud)

//异常是

Unable to cast object of type '<ConcatIterator>d__71`1[Blah.Message]' to type 'Blah.Messages'.
Run Code Online (Sandbox Code Playgroud)

Fjo*_*odr 5

我对字节数组有同样的问题。我做了什么来解决我的问题:

col1.Concat(col2).ToArray();
Run Code Online (Sandbox Code Playgroud)

如果你有一个列表:

col1.Concat(col2).ToList();
Run Code Online (Sandbox Code Playgroud)