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# ? :、?.?? 运算符与 + 的优先级
?? 运算符是什么?