我有两个收藏:
List<int> ids;
List<User> users;
Where User
有id、姓名等
我想内部加入这两个集合并返回一个新的List<int>
第一个集合中的 id 也在第二个集合中(用户 ID)。
我是 LINQ 新手,不知道从哪里开始。
Thanks.
您不需要使用 join 来执行此操作:
List<int> commonIds = ids.Intersect(users.Select(u => u.Id)).ToList();
编辑:为了回答评论中的问题,您可以获取用户列表而不使用Join
:
var matchingUsers = users.Where(u => ids.Contains(u.Id));
然而,这是相当低效的,因为Where
子句必须扫描每个用户的 id 列表。我认为加入将是处理这种情况的最佳方法:
List<User> matchingUsers = users.Join(ids, u => u.Id, id => id, (user, id) => user).ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)