.net - 使用 linq 组合对象

标签 .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
}

合并代码
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'.

最佳答案

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

col1.Concat(col2).ToArray();

如果你有一个列表:
col1.Concat(col2).ToList();

关于.net - 使用 linq 组合对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2600977/

相关文章:

c# - 如何使用 Path 元素绘制形状?

.net - 使用 SolrNet 查询 Solr 时,查看请求的实际 Url 的最简单方法是什么?

.net - 我可以在 VS2008 中使用 .NET Framework 4.0 吗?

c# - 列出 : Count vs Count()

c# - 使用 linq C# 从数据表中查找 "false"的编号

c# - Linq 查询 ToList() 运行

c# - 使用 lambda 表达式进行复合选择

c# - HostBuilder.Build() 返回的 IHost 实例属于哪个类?

c# - 如何将 WebGrid 列的 int 值转换为字符串?

c# - 使用 C# Expression Evaluator 过滤列表