C# Linq 一句话处理 2 个循环

List<User> users;
Dictionary<int, int> hotUsers; // key 为 UserId 值,value 为热度值。

如上:users 是所有的用户列表,hotUsers 是热门用户的 UserId 和热度。

现在需要找出 hotUsers 的 Username,传统做法是需要写 2 个循环来比较、查找。

有了 Linq,代码如下:

hotUsers.Keys.Select(m => users.Find(n => n.UserId == m)?.Username)),

一句话。配合 ?. 轻松解决找不到的情况。

相关阅读

  • Dictionary 用 LINQ、Where

  • 为什么别人的 Dictionary 可用 Where 等 Linq,我的不行

  • 关于 CSharp 值-LINQ、Where、Find 无结果时,返回值如何?

  • 抛弃传统,用委托、Lambda、Linq 取 List 中的项

  • 霸道的 Lambda 事件处理程序表达式

  • 小心 List.Where 中 Lambda 表达式,性能问题

  • 关于 CSharp 值-?. 的默认值

  • C# ? :、?.?? 运算符与 + 的优先级

  • ?? 运算符是什么?

你可能感兴趣的