gpt4 book ai didi

c# - LINQ 内连接

转载 作者:太空狗 更新时间:2023-10-30 00:00:36 25 4
gpt4 key购买 nike

我有两个集合:

List<int> ids;
List<User> users;

在哪里User有id、name等。

我想内部加入这两个集合并返回一个新的 List<int>第一个集合中的 ID 也在第二个集合中(用户 ID)。

我是 LINQ 的新手,不知道从哪里开始。

谢谢。

最佳答案

您不需要使用 join 来执行此操作:

List<int> commonIds = ids.Intersect(users.Select(u => u.Id)).ToList();

编辑:针对评论中的问题,您可以在不使用 Join 的情况下获得用户列表:

var matchingUsers = users.Where(u => ids.Contains(u.Id));

然而,这是非常低效的,因为 Where 子句必须扫描每个用户的 ID 列表。我认为 Join 是处理这种情况的最佳方式:

List<User> matchingUsers = users.Join(ids, u => u.Id, id => id, (user, id) => user).ToList();

关于c# - LINQ 内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com