c# - 使用 LINQ 将两个类合并到字典中

标签 c# linq list dictionary

我有两个共享两个公共(public)属性的类,Id 和 Information。

public class Foo
{
     public Guid Id { get; set; }

     public string Information { get; set; }

     ...
}
public class Bar
{
     public Guid Id { get; set; }

     public string Information { get; set; }

     ...
}

使用 LINQ,我如何获取填充的 Foo 对象列表和填充的 Bar 对象列表:

var list1 = new List<Foo>();
var list2 = new List<Bar>();

每个的 ID 和信息合并到一个字典中:

var finalList = new Dictionary<Guid, string>();

提前谢谢你。

最佳答案

听起来你可以这样做:

// Project both lists (lazily) to a common anonymous type
var anon1 = list1.Select(foo => new { foo.Id, foo.Information });
var anon2 = list2.Select(bar => new { bar.Id, bar.Information });

var map = anon1.Concat(anon2).ToDictionary(x => x.Id, x => x.Information);

(你可以在一条语句中完成所有这些,但我认为这样更清楚。)

关于c# - 使用 LINQ 将两个类合并到字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11655548/

相关文章:

c# - LINQ 对多个字段进行分组并将非唯一字段放入列表

c# - 如何使用 Linq 在列表中查找两个连续项目的子列表

c# - 动态 linq 表达式查询,出现问题

c# - 哪些 .NET 功能允许我使用 "reload"和 "restart"嵌入式服务器?

c# - ZedGraph - 我正在寻找使用 DateTime 的示例

c# - 单击“取消”后返回到包含搜索结果的上一页

c - 编译 linux 内核时无法识别 list_head

list - 是否可以在不破坏等式推理的情况下使用教堂编码?

scala - 如何检查列表是否包含所有相同的值?

c# - 代码找不到塞尔维亚语资源